1

我想要做的是给特定参与者阅读访问权限其他参与者的字段,但将条件放在第三个资源上。

例如:

rule SampleRule{
       description: "Allow the Participant1 to view Participant2 profile"
       participant(m): "org.sample.blockchain.Participant1"
       operation: READ
       resource(v): "org.sample.blockchain.Participant2"
       condition:(
                  v.getIdentifier() == Record.Participant1.getIdentifier() 
                     && m.getIdentifier() == Record.Participant2.getIdentifier()
                )
       action: ALLOW
    }
    asset Record identified by Id {
       o String Id
       --> Participant1 Participant1
       --> Participant2 Participant2
    }
    participant Participant1 identified by EmailId{
       o String EmailId
       o String Name
       o Integer Age
    }
    participant Participant2 identified by EmailId{
       o String EmailId
       o String Name
       o Integer Age
    }

所以在这里我想根据一些资产记录将参与者 2 的个人资料访问权限授予参与者 1。

在作曲家中这件事有可能吗?如果没有,其他选择是什么?

4

1 回答 1

0

我不相信 Hyperledger Composer 目前无法做到这一点。您无法从 ACL 规则中查找不相关的资产。

但是,您可以查找相关资产的标识符。为此,您需要将参与者的关系添加到记录,如下所示:

asset Record identified by Id {
    o String Id
    --> Participant1 Participant1
    --> Participant2 Participant2
}

participant Participant1 identified by EmailId{
    o String EmailId
    o String Name
    o Integer Age
    --> Record record // note the new record field
}

然后,您可以record从 ACL 规则访问相关字段:

rule SampleRule {
    description: "Allow the Participant1 to view Participant2 profile"
    participant(m): "org.sample.blockchain.Participant1"
    operation: READ
    resource(v): "org.sample.blockchain.Participant2"
    condition: (
        m.record.getIdentifier() === v.record.getIdentifier()
    )
    action: ALLOW
}

我们目前有一个 GitHub 问题来解决与相关资产的关系,这将允许您查找相关资产的所有字段:

https://github.com/hyperledger/composer/issues/1007

于 2017-06-20T03:27:09.293 回答