我试图找到使用 Symfony2 处理“复杂”安全/隐私系统的最佳方法。
我阅读了很多关于 theROLES
和 the的文档,ACLs
但我正在寻找不同的东西。我需要根据对象的属性计算权限。
在我的例子中,我有一个User
对象和多个其他对象(Project
、Task
、Label
等等......)。
我需要检查是否User
可以在不将权限存储在数据库中的情况下读取或写入ACL
任何类型的对象(就像系统正在做的那样)。权利应该基于User
和给定对象之间的关系“计算”。
例如,User(1)
可以写在 上,Task(2)
因为他是 的成员,Project(3)
而Task(2)
是Project(3)
。
安全服务的角色无法处理这个问题。ACL 可以处理它,但我不想将权限存储在我的数据库中,因为我知道它们会在产品生命周期内发生很大变化。
是否有针对这种需求的已知良好做法,或者我应该编写自己的系统?
谢谢。