CakePHP ACL。一个操作多个权限

CakePHP ACL。一个操作多个权限,cakephp,authentication,acl,Cakephp,Authentication,Acl,我不熟悉CakePHP,但熟悉其他PHP框架。我试图找出实现以下ACL设置的“蛋糕方式” 我当前已将ACL配置为。当我想将一个组限制为一个特定的操作时,这非常有效 但是,如果我有一个操作,例如编辑,并且我希望根据您试图编辑的用户组限制编辑操作 组“user”中的用户将被拒绝访问编辑操作。 如果正在编辑的用户在“用户”组中,则允许组“主持人”中的用户进行编辑。 如果“管理员”组中的用户正在编辑的是“用户”或“版主”组中的用户,则允许该用户进行编辑 我很难理解我的用户和组表与aco和aro表不同这一

我不熟悉CakePHP,但熟悉其他PHP框架。我试图找出实现以下ACL设置的“蛋糕方式”

我当前已将ACL配置为。当我想将一个组限制为一个特定的操作时,这非常有效

但是,如果我有一个操作,例如编辑,并且我希望根据您试图编辑的用户组限制编辑操作

组“user”中的用户将被拒绝访问编辑操作。
如果正在编辑的用户在“用户”组中,则允许组“主持人”中的用户进行编辑。
如果“管理员”组中的用户正在编辑的是“用户”或“版主”组中的用户,则允许该用户进行编辑

我很难理解我的用户和组表与aco和aro表不同这一事实,以及我应该如何建立这种关系,以便将来不会绊倒我

我开始尝试创建一个路由索引函数,它可以让你跳转到不同的终端动作;编辑用户、编辑模块、编辑管理员,然后我可以用ACL锁定它们,但我不确定是否有更好的方法来组织它

非常感谢,

Pete

您可以像这样建立权限:

ARO:

  • 使用者
    • 主持人
      • 管理员
    • 其他类型的成员1
    • 其他类型的成员2
助理文书主任:

  • 用户控制器
    • 编辑动作
      • 编辑用户
        • 编辑版主
          • 编辑管理员
        • 编辑其他类型的成员1
        • 编辑其他类型的成员2
然后你可以说:

  • 版主有权编辑用户:版主和管理员都可以编辑任何类型的成员
  • 版主无权编辑版主 :版主和管理员都不能编辑版主
  • 管理员有权编辑版主:管理员可以编辑版主和管理员
  • 等等

  • 感谢您的回答@kevtunder使用您的示例编辑操作中的代码是什么样子的?我是否需要查询此人正在编辑谁,然后运行$this->Acl->check()来手动限制此操作?理想情况下,我希望在aros_acos表中管理所有权限。