0

我一直在为即将到来的项目阅读(基于角色的)访问控制列表,并且在弄清楚它将如何为我工作时遇到了一些麻烦。

在我看到的示例中,他们总是谈论允许和拒绝访问控制器/模型的特定操作。例如:组“访客”可以read发帖,“会员”可以readedit,“管理员”可以create, read, update, delete

这些事情对我来说似乎有点太全球化了。在我自己的情况下(为这个例子调整它),会有大量的组,每个组只能edit发布属于某个类别(或其他一些标准)的帖子。

我认为让它对我有用的唯一方法是为每个类别的帖子创建一个新的 ACO:

posts_cat:1
posts_cat:2
posts_cat:3

然后分别授予每个人的访问权限(对于需要访问所有权限的管理员来说,这可能是一个皇家 PITA)

ACL 模式如何涵盖这样的情况?有没有更好的方法?

我最终将在 PHP 中使用 Cake 实现这一点,因此欢迎使用 PHP 的示例,但不是必需的!

4

1 回答 1

0

一种选择是这样的规则:

允许('你的角色','edit_post','草稿');允许('你的角色','edit_post','category1');

或者您可以构建基于属性的访问控制(可以基于角色)。那就是允许角色基于属性对对象(广义上的)执行操作。

于 2009-10-20T06:22:05.990 回答