Loopback

时间:2018-01-16 12:42:41

标签: express loopbackjs

我正在使用Loopback作为REST API,并且我正在尝试配置更细粒度的权限,而不仅仅是将用户分配给应用程序范围的组。这样的事情就是我对客户方的想法:

USER:Bob ID:123

MODEL    |   READ | WRITE | EXECUTE
-----------------------------------
Projects |    Y   |   Y    |   N
Changes  |    N   |   N    |   N
Companies|    Y   |   Y    |   Y
ThingOne |    Y   |   N    |   N
ThingTwo |    Y   |   Y    |   N

管理员可以为单个模型切换单个用户的权限。

我尝试过的一个想法是为每个模型添加单独的ACL组,即模型Projects

"acls": [
{
  "accessType": "*",
  "principalType": "ROLE",
  "principalId": "$everyone",
  "permission": "DENY",
  "property": "find"
},
{
  "accessType": "READ",
  "principalType": "ROLE",
  "principalId": "projects-read-access",
  "permission": "ALLOW",
  "property": "find"
},
{
  "accessType": "WRITE",
  "principalType": "ROLE",
  "principalId": "projects-write-access",
  "permission": "ALLOW",
  "property": "find"
},
{
  "accessType": "EXECUTE",
  "principalType": "ROLE",
  "principalId": "projects-execute-access",
  "permission": "ALLOW",
  "property": "find"
}
],

然后将角色与RoleMapping匹配,但这似乎是错误和繁琐的。有关最佳方法的任何建议都是适用的, 感谢

1 个答案:

答案 0 :(得分:0)

由于管理员可以为单个模型切换单个用户的权限,因此您需要一个数据库表来存储用户的权限。然后,您可以创建一个动态角色来检查正确的权限:http://loopback.io/doc/en/lb3/Defining-and-using-roles.html#dynamic-roles