Loopback - 模型的ACL列表,用于在数据库中而不是在其json文件中

时间:2018-03-21 05:11:01

标签: node.js acl loopbackjs node-modules

我是node.js中的loopback框架的新手。

在我的项目中,我可以创建模型,扩展内置模型并在其上应用acls。一切都很好。

但是,我无法在数据库表'ACL'中看到我为我的模型申请的ACL列表。

通过<model>.json为模型应用的ACL列表工作正常。但我需要通过我的数据库申请。

要实现:从UI(客户端)开始,我将允许超级管理员 自定义特定角色的属性 。我计划在ACL表中更新这些属性Role。出于这个原因,我需要从DB而不是<model>.json文件中查看模型的ACL列表。

ACL Table columns:
- id
- model
- principalId
- property
- accessType
- permission
- principalType
  • 并且,基于.json中的acl数组,它会更新DB中对应的ACL表吗?

(或)

  • 我们必须手动更新DB(ACL表)?

此外,我从here寻找解决方案,但没有运气。 请帮我实现这个目标...(使用数据库ACL表同步ACL模型列表) 如果我在任何地方都错了,请纠正我。

三江源。

1 个答案:

答案 0 :(得分:1)

您发布了指向another post链接的链接,其中说明了如何在运行时修改模型ACL。

  

创建ACL是不够的,您必须使用

将它们附加到模型本身
MyModel.settings.acls.push(...)

它甚至提供了一个远程方法,向您展示如何将ACL添加到模型

MyModel.aclsPost = function (acl, context, cb) {
        MyModel.settings.acls.push(acl);
        cb(null, {});
    }

    MyModel.remoteMethod(
        'aclsPost',
        {
            accepts: [
                {arg: 'acl', type: 'Object', http: {source: 'body'}},
                {arg: 'context', type: 'object', http: {source: 'context'}}
            ],
            http: {path: '/acls', verb: 'post', status: 201, errorStatus: 404}
        }
);