CakePHP ACL。一个动作多个权限

时间:2012-09-17 21:15:52

标签: cakephp authentication acl

我是CakePHP的新手,但熟悉其他PHP框架。我正在试图找出实现以下ACL设置的'Cake方式'..

我目前已将ACL配置为Simple Acl tutorial。当我想将组限制为特定操作时,这非常有用。

但是,如果我有一个动作,例如编辑,我希望编辑操作受限制,具体取决于您正在尝试编辑的用户组。

群组'用户'中的用户将被拒绝访问编辑操作 如果正在编辑的用户位于“用户”组中,则允许组“主持人”中的用户进行编辑 如果他们正在编辑的用户位于群组“用户”或“主持人”中,则群组“管理员”中的用户将被允许进行编辑。

我无法理解我的用户和群组表格与aco& aro和我应该如何建立这种关系,以便将来不会让我失望。

我开始尝试创建一个路由索引函数,让你跳转到不同的结束动作; edit_user,edit_mod,edit_admin然后我可以用ACL锁定但我不确定是否有更好的方法来组织它。

非常感谢提前,
皮特

1 个答案:

答案 0 :(得分:1)

你可以像这样建立你的许可:

ARO:

  • 用户
    • 主持人
      • 管理
    • 其他类型的成员1
    • 其他类型的成员2

ACO:

  • 用户控制器
    • 编辑操作
      • 修改用户
        • 编辑主持人
          • 修改管理员
        • 编辑其他类型的成员1
        • 编辑其他类型的成员2

然后你可以说:

  1. 主持人拥有编辑用户的权利:主持人和管理员都可以编辑任何类型的成员
  2. 主持人无权编辑主持人 :主持人和管理员都无法编辑主持人
  3. 管理员拥有编辑版主的权限:管理员可以编辑版主和管理员