目前,我在同一业务网络上有两个组织(org1和org2),并且我在模型文件中为参与者设置了不同的角色,如下所示
participant Mailer identified by workerid {
o String workerid
}
participant Processor identified by wid {
o String wid
}有没有办法在权限文件中添加规则,以便只有来自org1的管理员可以创建邮件程序,并且只有来自org2的管理员可以创建处理者。一些类似的东西
rule enableOrg1ToCreateMailers {
description: "Enable admin from org 1 to create Mailers"
participant(t): "org.hyperledger.composer.system.NetworkAdmin"
operation: CREATE
resource: "demonetwork1.Mailer"
condition: (t.organization.getidentifier() == "org1")
action: ALLOW
}发布于 2018-05-29 07:09:48
您的规则可能更像这样(因为“组织”不是“系统”管理类的属性):
rule enableOrg1ToCreateMailers {
description: "Enable admin from org 1 to create Mailers"
participant(t): "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL // (CREATE, READ, UPDATE, DELETE)
resource: "demonetwork1.Mailer"
condition: (t.getIdentifier() == "org1admin")
action: ALLOW
}您可能更喜欢在类似于org.acme.mynetwork.orgadmin的内容中定义participant实例(使用您在模型中添加的'organization‘字段),然后使用该字段。
participant(t): "org.acme.mynetwork.orgadmin"和你上面的原始状态。
提供组织(就像您已经做过的那样)作为业务网络参与者类的属性来创建业务网络资源会更有效,这样就可以对immediately...rather进行检查,而不是从其他来源派生。我只添加了'ALL‘-如果相同的业务网络管理员被允许对这些资源等执行其他CRUD操作(即比'CREATE’操作等更多)。
最后,此处显示了一个示例(尽管条件稍微复杂一些,但可以给出相同的原则),作为一个有用的参考点:Includes function in ACL condition
https://stackoverflow.com/questions/50537312
复制相似问题