2017-06-09 5 views
2

組織への参照を含むMedicalFileという資産があります。参加者のHealthCareProfessionalも組織に属します。ACL条件に関数を含める

ここで、MedicalFileが組織に接続されている医療ファイルのみを表示するように医療従事者を制限するACLルールを定義したいと考えています。

私は、次のルールを思い付いた:私はループバックでRESTfulなAPIを呼び出したら、これは空の配列になり

rule OrganisationMedicalFilePermission { 
    description: "An organisation may updates a medical file which they have permission from" 
    participant(h): "nl.epd.blockchain.HealthCareProfessional" 
    operation: ALL 
    resource(m): "nl.epd.blockchain.MedicalFile" 
    condition: (m.organisations.includes(h.organisation)) 
    action: ALLOW 

}

。私は医療専門家として認証されています。

資産&参加者:それは、この問題を検証する条件を作成することが可能かどう

asset Organisation identified by id { 
     o String id 
     o String name 
     o String city 
     o String zipCode 
     o String street 
     o String houseNumber 
     o String houseNumberExtra optional 
     o OrganisationType organisationType 
} 

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 HealthCareProfessional identified by bsn { 
    o String bsn 
    o String firstName 
    o String namePrefix optional 
    o String lastName 
    --> Organisation organisation 
} 

私の質問です。そうでない場合、私の選択肢は何ですか?

答えて

5

これは良い質問です。私がonline playgroundを使用してテストした下に更新されたACLがあります。

これは、更新されたルールです:some機能は関係の配列をスキャンするために、ここで重要な部分である

rule LimitAccess { 
    description: "An organisation may updates a medical file which they have permission from" 
    participant(h): "nl.epd.blockchain.HealthCareProfessional" 
    operation: ALL 
    resource(m): "nl.epd.blockchain.MedicalFile" 
    condition: (
    m.organisations.some(function (organisation) { 
     return organisation.getIdentifier() === h.organisation.getIdentifier(); 
     }) 
    ) 
    action: ALLOW 
} 

。また、識別子に直接アクセスするのではなく、getIdentifier()関数の使用にも注意してください。

+1

魅力的な作品です。ありがとうございます! – Jamie

関連する問題