Вместо предоставления полного доступа к обновлению участнику я хотел бы предоставить ему доступ к обновлению для определенного свойства в активе.
Из того, что я прочитал в документации, можно применить правило к свойству.
Правило:
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
}