AND / OR用于Loopback的ACLS中的角色

时间:2014-11-28 18:29:26

标签: node.js access-control loopbackjs strongloop

我有一个应用程序,用户可以拥有几种不同类型的角色

静态角色:每个都确定不同级别的权限,用户被映射到其中一个角色

  • ADMINUSER
  • 高级用户
  • baseUser

动态角色:

  • accountMember :如果用户尝试访问的资源属于同一帐户,则会分配此角色。

现在,让我们说我有两个端点:

  • / addUsers :为了访问此端点,用户需要具有 adminUser 角色以及 accountMember 角色{{ 1}}
  • / editUsers :为了访问此端点,用户需要具有 adminUser powerUser 角色,以及< em> accountMember 角色。例如adminUser && accountMember

假设角色已正确应用,我将如何使用loopback的ACLS数组实现AND / OR逻辑?

1 个答案:

答案 0 :(得分:0)

以下是我为(powerUser || adminUser) && accountMember

提出的流程
[DENY *$everyone* for all methods]

[ALLOW *accountMember* on */editUsers*]

[DENY *baseUser* on */editUsers*]

adminUser && accountMember

[DENY *$everyone* for all methods]

[ALLOW *accountMember* on */editUsers*]

[DENY *baseUser* on */editUsers*]

[DENY *powerUser* on */editUsers*]

我真的不喜欢它,因为我要添加另一个用户角色,然后我必须编辑很多ACLS。我宁愿隐式允许 adminUser 而不是拒绝所有其他用户类型。