2015-11-13 66 views
0
  • 我们陷入了一种情况,我们想要在运行时使用回送来创建'远程方法'?这样任何客户端都可以在运行时创建自己的安全路由,而无需重新加载服务器。在运行时创建远程方法?

  • 另外我们如何将ACL添加到运行时添加的远程方法?

回答

1

首先远程方法是在运行时增加,但在启动时。并且您可以在您的model.js目录common/models文件夹中定义它们。你可以在docs这里查看它们。如果有任何问题,请尝试添加远程方法并显示您的代码。

其次,你可以通过两种方式添加ACL到您的代码:

  • 使用数据源的createModel()功能:

    var Customer = ds.createModel('Customer', { name: { type: String, acls: [ { principalType: ACL.USER, principalId: 'u001', accessType: ACL.WRITE, permission: ACL.DENY }, { principalType: ACL.USER, principalId: 'u001', accessType: ACL.ALL, permission: ACL.ALLOW } ] } }, { acls: [ {principalType: ACL.USER, principalId: 'u001', accessType: ACL.ALL, permission: ACL.ALLOW} ] });

  • 在你的情况,你可以使用ACL的create()功能model.js

    ACL.create({principalType: ACL.USER, principalId: 'u001', model: 'User', property: ACL.ALL, accessType: ACL.ALL, permission: ACL.ALLOW}, function(err, acl) {...});

    ACL.create({principalType: ACL.USER, principalId: 'u001', model: 'User', property: ACL.ALL, accessType: ACL.READ, permission: ACL.DENY}, function(err, acl) {...});

你可以阅读在这里docs在运行时添加ACL。