【问题标题】:Loopback: How to define ACL rules in a mixin?Loopback:如何在 mixin 中定义 ACL 规则?
【发布时间】:2023-04-02 19:18:02
【问题描述】:

我想定义一组 ACL 规则,这些规则应该可以通过使用 mixins 轻松移植和扩展。

MyModel.json 中为某些模型 MyModel 定义这些是微不足道的:

"acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    }]

这可行,并且可以正确阻止所有人的 API 调用。但是,当我在 mixin 中做同样的事情(或者我认为)时,它不起作用:

module.exports = function (Model, options) {

  Model.getApp(function (err, app) {

    app.models.ACL.create({
      model: Model.modelName,
      accessType: '*',
      principalType: 'ROLE',
      principalId: '$everyone',
      permission: 'DENY'
    }, function (err, acl) {
      console.log('ACL entry created: %j', acl);
    });

  });

};

缺少什么?

【问题讨论】:

    标签: loopbackjs strongloop


    【解决方案1】:

    在查看源代码以查看 Loopback 本身如何在配置时注册 ACL 之后,以下似乎是在 mixin 中执行此操作的正确方法:

    module.exports = function (Model, options) {
    
      Model.settings.acls.push({
        "accessType": "*",
        "principalType": "ROLE",
        "principalId": "$everyone",
        "permission": "DENY"
      });
    
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多