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) は条件のメンターに等しいと仮定しています。これは、エラー メッセージに、参加者には 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
}
4

1 に答える 1

1

ACL エンジンは、プロパティ レベルのアクセス制御をまだ実施していません (名前空間とクラス レベルのアクセス制御のみが実装されています)。

getCurrentParticipant()プロパティの宣言型アクセス制御が実装されるまでは、ランタイム API を使用してプログラムによるアクセス制御を使用する必要があります。

于 2017-06-12T05:13:22.703 に答える