Hyperledger作曲者对参与者数组的许可

时间:2018-08-13 04:49:22

标签: hyperledger-composer

我正在Hyperledger作曲器中创建资产,如下所示。我想在Bank []数组中添加参与者(这些银行将仅具有只读访问权限)。在Permission.acl文件中,如何为该资产(只读)存在参与者的条件写出检查条件(银行[])

资产定义:

asset Details identified by detailsId {
    o String detailsId
    o String description optional
    --> Bank owner
    --> Bank[] access optional
    o String document 
}

2 个答案:

答案 0 :(得分:3)

类似于以下内容-a)如果不为空,并且b)如果银行的参与者被授权(通过检查数组),则为-如果允许,则允许READ访问(如果我没看错)。

rule checkParticipant {
    description: "check Participant is from allowed Bank"
    participant(p): "org.acme.account.BankTeller"
    operation: READ
    resource(v): "org.acme.account.Details"
    condition: ( v.access && v.access.indexOf(p.getIdentifier()) > -1 )
    action: ALLOW
}

或条件(如以下情况)(如果有问题):

condition: ( v.access && v.access.toLowerCase().indexOf(p.getIdentifier().toLowerCase()) > -1 )

答案 1 :(得分:1)

该规则应该可以解决问题,尽管您的命名空间可能有所不同。假设您还有其他规则可以允许访问银行参与者注册表。

rule AllowAccessToBankInArray {
description: "Allow access "
participant(p): "com.example.Bank"
operation: ALL
resource(r): "com.example.Details"
condition: (
   r.access.some(function (bank) {
      return bank.getIdentifier() === p.getIdentifier();  
      } )
   )