代码之家  ›  专栏  ›  技术社区  ›  Sahil

参与者数组的Hyperledger composer权限

  •  0
  • Sahil  · 技术社区  · 8 年前

    如果参与者存在,如何编写检查数组(Bank)的条件? 对于此资产(只读)。

    asset Details identified by detailsId {
        o String detailsId
        o String description optional
        --> Bank owner
        --> Bank[] access optional
        o String document 
    }
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Paul O'Mahony    8 年前

    类似于下面的内容-a)如果它不是空的,b)如果银行的参与者被授权(通过检查数组)-如果是,允许读取访问(如果我正确地读取了您)。

    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 )
    
        2
  •  1
  •   R Thatcher    8 年前

    尽管您的名称空间可能不同,但这个规则应该起到作用。假设您有其他规则允许访问银行参与者注册表。

    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();  
          } )
       )