我没有给参与者提供完全更新权限,而是希望向他提供对资产中特定财产的更新权限。
根据我从文档中读到的内容,可以将规则应用于属性。
规则:
rule PatientAddMentor {
description: "A patient is allowed to add mentors"
participant(p): "nl.epd.blockchain.Patient"
operation: UPDATE
resource(m): "nl.epd.blockchain.MedicalFile.mentors"
condition: (m.owner.getIdentifier() == p.getIdentifier())
action: ALLOW
}
我所处理的部分是如何在条件中定位资产。我假设(m)等于条件中的导师,因为错误消息表明参与者没有UPDATE权限。 (我不确定它是否可能。)
型号:
namespace nl.epd.blockchain
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 Patient identified by bsn {
o String bsn
o String firstName
o String namePrefix optional
o String lastName
o String email
o String telephoneNumber
o String birthday
o String gender
o String city
o String zipCode
o String street
o String houseNumber
o String houseNumberExtra optional
}
答案 0 :(得分:1)
ACL引擎尚未强制执行属性级别访问控制(仅实现了命名空间和类级别访问控制)。
您必须使用getCurrentParticipant()
运行时API进行编程访问控制,直到实现属性的声明性访问控制。