【问题标题】:CakePHP ACL. One action multiple permissionsCakePHP ACL。一动作多权限
【发布时间】:2012-09-17 21:15:51
【问题描述】:

我是 CakePHP 新手,但熟悉其他 PHP 框架。我正在尝试找出实现以下 ACL 设置的“蛋糕方式”..

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

但是,如果我有一个动作,例如编辑,我希望根据您尝试编辑的用户组来限制编辑操作。

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

我很难理解我的 User 和 Group 表与 aco 和 aro 的不同这一事实,以及我应该如何建立这种关系,以免将来绊倒我。

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

非常感谢,
皮特

【问题讨论】:

    标签: cakephp authentication acl


    【解决方案1】:

    你可以像这样建立你的权限:

    ARO:

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

    ACO:

    • 用户控制器
      • 编辑操作
        • 编辑用户
          • 编辑版主
            • 编辑管理员
          • 编辑其他类型的成员 1
          • 编辑一些其他类型的成员 2

    那你可以说:

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

    【讨论】:

    • 感谢您的回答@Kevthunder 使用您的示例,代码在编辑操作中会是什么样子?我是否需要查询该人正在编辑谁,然后运行 ​​$this->Acl->check() 来手动限制它?理想情况下,我想要一个在 aros_acos 表中管理所有权限的设置。
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 2012-03-20
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多