gpt4 book ai didi

hyperledger-fabric - 包括 ACL 条件下的功能

转载 作者:行者123 更新时间:2023-12-02 09:18:46 25 4
gpt4 key购买 nike

我有一个名为 MedicalFile 的 Assets ,其中包含对组织的引用。参与者 HealthCareProfessional 也属于一个组织。

现在我想定义一条 ACL 规则,限制医疗保健专业人员只能查看 MedicalFile 与其组织连接的医疗文件。

我想出了以下规则:

rule OrganisationMedicalFilePermission {
description: "An organisation may updates a medical file which they have permission from"
participant(h): "nl.epd.blockchain.HealthCareProfessional"
operation: ALL
resource(m): "nl.epd.blockchain.MedicalFile"
condition: (m.organisations.includes(h.organisation))
action: ALLOW

}

当我使用 Loopback 调用 RESTful API 时,这会导致一个空数组。我已获得医疗保健专业人员认证。

Assets 和参与者:

asset Organisation identified by id {
o String id
o String name
o String city
o String zipCode
o String street
o String houseNumber
o String houseNumberExtra optional
o OrganisationType organisationType
}

asset MedicalFile identified by bsn {
o String bsn
--> Patient owner
--> Patient[] mentors optional
--> Organisation[] organisations optional
o Visit[] visits optional
o String[] allergies optional
o Treatment[] treatments optional
o Medicine[] medicine optional
}

participant HealthCareProfessional identified by bsn {
o String bsn
o String firstName
o String namePrefix optional
o String lastName
--> Organisation organisation
}

我的问题是是否可以创建一个验证此问题的条件。如果没有,我有什么选择?

最佳答案

这是一个好问题;下面有一个更新的 ACL,我已经使用 online playground 进行了测试.

这是更新后的规则:

rule LimitAccess {
description: "An organisation may updates a medical file which they have permission from"
participant(h): "nl.epd.blockchain.HealthCareProfessional"
operation: ALL
resource(m): "nl.epd.blockchain.MedicalFile"
condition: (
m.organisations.some(function (organisation) {
return organisation.getIdentifier() === h.organisation.getIdentifier();
} )
)
action: ALLOW
}

some 函数是扫描关系数组的关键部分。另请注意使用 getIdentifier() 函数,而不是尝试直接访问标识符。

关于hyperledger-fabric - 包括 ACL 条件下的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com