如何在Loopback中的n级子对象上正确定义访问控制?

时间:2016-10-17 09:45:51

标签: acl loopbackjs

关于在我的模型上定义ACL的最佳方法,我正在摸不着头脑。 我有一个这样的模型树:
Project -> Issue -> Objective -> Action -> Planning
每个项目都由少数用户管理(一些用户具有只读访问权限,另一些用户具有完全访问权限)。如果用户与项目无关,则无法访问该项目。每个孩子只知道它的父母(parentId)。

如何检查用户X是否可以访问Planning Y?

我测试了嵌套模型,它工作正常但只在第一级(Project -> Issue)。我已经尝试了一个角色解析器,我将所有父模型传递给Project,但它很丑,必须为每个模型完成。 有人告诉我要在所有孩子身上添加projectId属性,但显然不是很干净。

非常感谢你的帮助,
亨利

1 个答案:

答案 0 :(得分:0)

最干净的方法是为每个子对象定义belongsTo Project关系(问题,目标,行动,计划)。

通过这种方式,您可以从环回中利用整个访问控制系统并使用动态角色。

你也可以在没有它的情况下实现角色解析,但是就像你说的那样,必须为每个模型重复它,最终它只是编写更多的代码并做更多的查询来完成与关系完全相同的事情。