0

我不想让参与者完全更新访问权限,而是让他更新访问资产中的特定属性。

根据我从文档中读到的内容,可以将规则应用于属性。

规则

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) 等于条件中的导师,因为错误消息说参与者没有更新权限。(我不确定这是否可能。)

模型:

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
}
4

1 回答 1

1

ACL 引擎尚未强制执行属性级别的访问控制(仅实施了命名空间和类级别的访问控制)。

在实现属性的声明性访问控制之前,您必须使用getCurrentParticipant()运行时 API 使用编程访问控制。

于 2017-06-12T05:13:22.703 回答