我一直在为即将到来的项目阅读(基于角色的)访问控制列表,并且在弄清楚它将如何为我工作时遇到了一些麻烦。
在我看到的示例中,他们总是谈论允许和拒绝访问控制器/模型的特定操作。例如:组“访客”可以read
发帖,“会员”可以read
和edit
,“管理员”可以create, read, update, delete
。
这些事情对我来说似乎有点太全球化了。在我自己的情况下(为这个例子调整它),会有大量的组,每个组只能edit
发布属于某个类别(或其他一些标准)的帖子。
我认为让它对我有用的唯一方法是为每个类别的帖子创建一个新的 ACO:
posts_cat:1
posts_cat:2
posts_cat:3
然后分别授予每个人的访问权限(对于需要访问所有权限的管理员来说,这可能是一个皇家 PITA)
ACL 模式如何涵盖这样的情况?有没有更好的方法?
我最终将在 PHP 中使用 Cake 实现这一点,因此欢迎使用 PHP 的示例,但不是必需的!