ACL 在操场上有效吗?

ACL works in playground?

能否请您告诉我们 ACL 在操场上是否有效??

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

我将文件创建为资产,并将供应商创建为资产的所有者。然后,创建名为 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
}

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

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

如果您使用的是在线游乐场,假设您已经转到右上角 'admin' 并创建新身份并将其发布给参与者?如果没有,您可以通过以下方式进行:

  1. 点击游乐场右上角的'admin'

  2. '+签发新ID'

  3. 提供一个用户 ID(任何你喜欢的)和参与者(将是你之前创建的)然后按 'Create New'

  4. Select 选项 2:“+ 添加到我的钱包”(这将允许您使用该身份,并且您将 'be' 该参与者

我问的原因是即使你的 ACL 文件有效,如果你保持 'admin' 身份,你仍然可以 view/do 一切你想要的。

另一件事,您可以在 Rule1 中尝试使用“===”而不是“==”吗?这两条规则是有道理的,从它的角度来看,所有用户都可以查看,但是如果所有者以外的任何人都试图验证该资产,则会引发错误,因为它需要未授予的更新权限。

希望对您有所帮助。