ACL在操场上工作?

时间:2017-08-09 16:15:04

标签: hyperledger-composer

如果ACL在游乐场工作,请告诉我们吗?

我想创建一个规则,资产所有者只能修改规则。我在操场上试过,但是没有用

我创建了文件作为资产和供应商作为资产的所有者。然后,创建的名为file1的资产将supplier1作为所有者附加。当我执行提交交易时,Supplier2也可以修改交易。我的规则是无效的?我需要更多的鲁莽吗?

     /**
     * 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
}

我的标准是,数据验证只能由文件的所有者完成,而不是其他人。如何处理

1 个答案:

答案 0 :(得分:2)

回答你的主要问题 - 是的,ACL文件在在线游乐场中有效,我让它适用于我的一个应用程序。如果你不是指在线游乐场,我不确定我的其余部分是否有帮助。

如果您使用的是在线游乐场,则认为您已经走到了右上角所说的“管理员”#39;并创造了新的身份并向参与者发放了这些身份?如果没有,你可以通过以下方式实现:

  1. 点击' admin'在操场的右上角

  2. ' +发出新ID'

  3. 提供用户ID(无论您喜欢什么)和参与者(将是您之前创建的用户ID),然后按'新建'

  4. 选择选项2:' +添加到我的电子钱包' (这将允许您使用身份,您将成为该参与者
  5. 我问的原因是,即使您的ACL文件有效,如果您仍然是' admin'你仍然可以查看/做你想做的一切。

    另一件事,你可以尝试' ==='而不是' =='在你的Rule1?这两个规则是有道理的,从查看它,所有用户都可以查看,但如果除了所有者之外的任何人都试图验证该资产,则会引发错误,因为它需要未授予的UPDATE权限。

    希望这有帮助。