环回 acl 管理员角色不适用于模型

Loopback acl admin role is not applying on Model

我想知道是否有人可以帮助我解决这个问题,我无法找到为什么我的 'admin' 角色在环回 3.x 中不起作用,我正在尝试以下代码:

script.js - 对于在 postgres 数据库中创建管理员角色,这正确地创建了角色和映射

module.exports = function (app) {
var User = app.models.User;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;

  User.create([
  {username: 'Test', email: 'test@gmail.com', password: 'test'},
], function(err, users) {
  if (err) throw err;
  console.log('Created users:', users);
  //create the admin role
  Role.create({
    name: 'admin'
  }, function(err, role) {
    if (err) throw err;
    console.log('Created role:', role);
    role.principals.create({
      principalType: RoleMapping.USER,
      principalId: users[0].id
    }, function(err, principal) {
      if (err) throw err;
      console.log('Created principal:', principal);
    }); 
  });
});
}

然后在authentication.js -

server.enableAuth({ datasource: 'ds' });

testModel.json中,acls如下:

"acls": [
{
  "accessType": "WRITE",
  "principalType": "ROLE",
  "principalId": "admin",
  "permission": "ALLOW"
}
]

注意 - 我只想将 WRITE 权限授予 ADMIN。

不过还是POST api这个模型是大家可以看到的,不对的地方还请指正!

提前致谢!

最后,我通过以下方式应用 acls 得到了答案:

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

我只是先限制了所有用户,然后只给 Admin 权限!

这种方法对我有用,如果他们有更好的方法,你可以纠正我:)