限制PUT对资产内属性的访问

时间:2017-06-09 22:44:04

标签: hyperledger-fabric hyperledger-composer

我没有给参与者提供完全更新权限,而是希望向他提供对资产中特定财产的更新权限。

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

规则

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
}

1 个答案:

答案 0 :(得分:1)

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

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