2017-08-09 2 views
0

Pourriez-vous s'il vous plaît laissez-nous savoir si ACL fonctionne dans le terrain de jeu ??ACL travaille dans la cour de récréation?

Je souhaite créer des règles, dans lesquelles le propriétaire de l'actif peut uniquement modifier les règles. J'ai essayé dans le terrain de jeu par, qui ne fonctionne pas

J'ai créé le fichier en tant qu'atout et fournisseur en tant que propriétaire de l'actif. Ensuite, l'actif créé appelé fichier1 joint le fournisseur1 en tant que propriétaire. Lorsque j'effectue les transactions de soumission, le fournisseur2 peut également modifier les transactions. Est-ce que ma règle n'est pas valide ?? Ai-je besoin de plus de règles?

 /** 
    * New model file 
    */ 

    namespace org.acme.model 

    enum TransactionState { 
     o CREATED 
     o VERIFIED 
    } 

    asset File identified by fileId { 
     o String fileId 
     o String data 
     --> Supplier owner 
     o TransactionState state 
    } 

    participant Supplier identified by supplierId { 
     o String supplierId 
     o String emailId 
     o String details 
    } 



    transaction DataValidate { 
     --> File asset 
     o TransactionState state 
     --> Supplier supplier 
    } 

/** 
* Data Validation by Supplier 
* @param {org.acme.model.DataValidate} dataValidate - the DataValidate transaction 
* @transaction 
*/ 
function DataValidate(dataValidate) { 
    dataValidate.asset.state = dataValidate.state; 
    return getAssetRegistry('org.acme.model.File') 
     .then(function (assetRegistry) { 
      return assetRegistry.update(dataValidate.asset); 
     }); 
} 


rule Rule1 { 
    description: "can perform ALL operations , IF the participant is owner of the asset" 
    participant(m): "org.acme.model.Supplier" 
    operation: ALL 
    resource(v): "org.acme.model.File" 
    condition: (v.owner.getIdentifier() == m.getIdentifier()) 
    action: ALLOW 
} 


rule Member { 
    description: "Allow the member read access" 
    participant: "org.acme.model.Supplier" 
    operation: READ 
    resource: "org.acme.model.*" 
    action: ALLOW 
} 

Mes critères, la validation des données doit être faite uniquement par le propriétaire du fichier, pas d'autres. comment y faire face

Répondre

2

Pour répondre à votre question principale - Oui, le fichier ACL fonctionne dans Online Playground, je l'ai pour une de mes applications. Si vous ne faites pas référence au terrain de jeu en ligne, je ne suis pas sûr que le reste de ma réponse soit utile.

Si vous utilisez l'aire de jeu en ligne, présumez que vous êtes allé en haut à droite où il est écrit 'admin' et créé de nouvelles identités et les a distribuées aux participants? Sinon, vous pouvez le faire par:

  1. En cliquant « admin » dans le coin supérieur droit de l'aire de jeux

  2. « + Émettre Nouveau ID »

  3. offre un ID utilisateur (tout ce que vous aimez) et participant (sera celui que vous avez créé plus tôt), puis appuyez sur «Créer un nouveau»

  4. Sélectionnez l'option 2: «+ Ajouter à mon portefeuille» (Cela vous permettra d'utiliser l'identité et vous serez «que» participant

La raison pour laquelle je demande est que même avec votre fichier ACL fonctionnant, si vous restez comme l'identité «admin», vous pouvez toujours voir/faire tout ce que vous voulez.

Une autre chose, pourriez-vous essayer '===' au lieu de '==' dans votre Rule1? Les deux règles ont un sens, et de regarder, tous les utilisateurs peuvent voir, mais une erreur serait soulevée si quelqu'un, sauf le propriétaire, essaie de valider cet actif, car il nécessite des autorisations UPDATE qui ne sont pas accordées.

Espérons que cela aide.