在loopback nodejs中,没有人可以通过商店模型创建商店详细信息

in loopback nodejs, nobody can create shop details through shop model

不允许任何人直接通过店铺模型创建 只有管​​理员可以通过 user/id/shop

创建商店

通过使用 ACL,我拒绝在商店模型中创建详细信息。但我不知道如何只通过管理员创建商店

"acls": [
    {
      "principalType": "USER",
      "principalId": "admin",
      "permission": "ALLOW",
      "property": "create"
    },
    {
    "principalType": "ROLE",
    "principalId": "$everyone",
    "permission": "DENY",
    "property": "create"
    }
]

提前致谢


这是我的 script.js,

module.exports = function(app) {
  var User = app.models.User;
  var Role = app.models.Role;
  var RoleMapping = app.models.RoleMapping;
  debugger;
  User.create([
    {username: 'admin', email: 'admin@gmail.com', password: 'admin'},
  ], function(err, users) {

//create the admin role
Role.create({
  name: 'admin'
}, function(err, role) {


  role.principals.create({
    principalType: RoleMapping.USER,
    principalId: users[0].id
  }, function(err, principal) {
    //cb(err);
  });
});


});
}

但我仍然遇到授权错误

如果您希望能够通过 User 模型 (POST /users/{id}/shops) 以管理员身份创建 Shop,您还需要在 User 上设置正确的 ACL .我假设您已经正确设置了这两个模型之间的关系并且您已经创建了管理员角色。

user.json(相关部分)

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

您可以在官方 LoopBack 中找到更多相关信息 docs