限制对资产中 属性 的 GET 访问

Limit PUT acces to a property within an asset

我不想授予参与者完整的更新权限,而是授予他资产中特定 属性 的更新权限。

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

规则:

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
}

ACL 引擎尚未实施 属性 级访问控制(仅实施了命名空间和 class 级访问控制)。

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