首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >能否区分同一业务网络上的两个独立组织?

能否区分同一业务网络上的两个独立组织?
EN

Stack Overflow用户
提问于 2018-05-26 05:54:29
回答 1查看 63关注 0票数 0

目前,我在同一业务网络上有两个组织(org1和org2),并且我在模型文件中为参与者设置了不同的角色,如下所示

代码语言:javascript
运行
复制
participant Mailer identified by workerid {
  o String workerid
}
participant Processor identified by wid {
  o String wid
}

有没有办法在权限文件中添加规则,以便只有来自org1的管理员可以创建邮件程序,并且只有来自org2的管理员可以创建处理者。一些类似的东西

代码语言:javascript
运行
复制
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
}
EN

回答 1

Stack Overflow用户

发布于 2018-05-29 07:09:48

您的规则可能更像这样(因为“组织”不是“系统”管理类的属性):

代码语言:javascript
运行
复制
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‘字段),然后使用该字段。

代码语言:javascript
运行
复制
participant(t): "org.acme.mynetwork.orgadmin"

和你上面的原始状态。

提供组织(就像您已经做过的那样)作为业务网络参与者类的属性来创建业务网络资源会更有效,这样就可以对immediately...rather进行检查,而不是从其他来源派生。我只添加了'ALL‘-如果相同的业务网络管理员被允许对这些资源等执行其他CRUD操作(即比'CREATE’操作等更多)。

最后,此处显示了一个示例(尽管条件稍微复杂一些,但可以给出相同的原则),作为一个有用的参考点:Includes function in ACL condition

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50537312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档