对于即将开展的项目,我已经reading(基于角色)访问控制列表,并且遇到了一些麻烦,想知道它对我有用。
在我看过的例子中,他们总是讨论允许和拒绝访问控制器/模型的特定操作。例如:“访问者”群组可以read
个帖子,“成员”可以read
和edit
,“管理员”可以create, read, update, delete
。
对我来说,这些事情似乎有些过于全球化。在我自己的情况下(为此例子进行调整),会有大量的群组,每个群组只能edit
个属于特定类别的帖子(或其他一些标准) )。
我认为让它适用于我的唯一方法是为每个类别的帖子创建一个新的ACO:
posts_cat:1
posts_cat:2
posts_cat:3
然后单独访问每个人(对于需要访问所有人的管理员来说,这可能是皇家PITA)
ACL模式如何涵盖这样的情况?有更好的方法吗?
我最终将使用Cake在PHP中实现它,所以欢迎使用PHP的示例,但不是必需的!
答案 0 :(得分:0)
一个选项是这样的规则:
允许('your_role','edit_post','草稿'); 允许('your_role','edit_post','category1');
或者您可以构建基于属性的访问控制(可以基于角色)。这允许角色根据属性对对象(广义上)进行操作。