我想定义一组 ACL 规则,这些规则应该可以通过使用 mixins 轻松移植和扩展。
在 MyModel.json
中为某些模型 MyModel 定义这些是微不足道的:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
}]
这有效,并且正确地阻止了所有人的 API 调用。然而,当我在混合中做同样的事情(或者我认为)时,它不起作用:
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);
});
});
};
缺少什么?
最佳答案
在查看源代码以查看 Loopback 本身如何在配置时注册 ACL 之后,以下似乎是在混合中执行此操作的正确方法:
module.exports = function (Model, options) {
Model.settings.acls.push({
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
});
};
关于loopbackjs - 环回 : How to define ACL rules in a mixin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32166115/