参加者に完全な更新アクセス権を与える代わりに、アセット内の特定のプロパティへの更新アクセス権を与えたいと思います。
ドキュメントから読んだことから、プロパティにルールを適用することが可能です。
ルール:
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
}