我正在设计一个供我自己使用的学说支持的ACL系统,尽管我正在努力解决一些初步的设计问题。
现在我正在考虑根据类和唯一标识符创建它,将它们存储在表中:
Table: ACL
ResourceClass
ResourceKey
RoleClass
RoleKey
Permission
显然,这将要求我对正在查询的类进行内省以获得正确的ResourceClass值。
我想知道这种方法之前是否已经完成,或者是否有人建议以这种方式做到这一点。 Roles之间的递归关系等其他因素也让我感到困惑,因为我不确定如何递归查询构建资源的ACL和ACL。
我不是Zend ACL的忠实粉丝,所以请不要提出任何建议 - 我知道了!
当人们称重时,将对这个问题作进一步的澄清,所以请耐心等待!这个问题本身可能需要几次迭代! ;)
答案 0 :(得分:3)
我使用NestedSet来存储ACL层次结构和缓存以加快速度。
Doctrine ORM for PHP - NestedSet
这是一篇也很有用的文章:
Zend_Acl part 3: creating and storing dynamic ACLs | CodeUtopia - The blog of Jani Hartikainen
(看看前面两个部分)。