Acl-cakePHP 中组的通用权限
Posted
技术标签:
【中文标题】Acl-cakePHP 中组的通用权限【英文标题】:Common permission for groups in Acl-cakePHP 【发布时间】:2010-08-12 18:20:35 【问题描述】:我在新的网络应用程序中使用 Acl。
在我的应用中有四组用户。
我已经给了$this->Auth->authorize = 'actions'
,以便它会自动检查操作的权限。
我的问题是一些操作,例如更改密码、编辑个人资料等... 对所有用户都是通用的。 但现在我需要为 acos_aros 表中每个用户的权限创建每条记录。 这太烦人了
1) 有没有办法通过单个允许语句向所有类型的用户授予权限?2) 有没有办法通过检查是否允许和拒绝用户参数是否传递? 这意味着我需要授予将参数传递给特定用户的操作的权限。如果任何其他用户传递参数并尝试访问我需要拒绝他们的数据。
行级访问控制是否可以通过 ACL 完成?
任何帮助将不胜感激。 提前谢谢 :)
【问题讨论】:
【参考方案1】:如果您将$this->Auth->allow('action1','action2'...)
放入控制器的beforeFilter()
,则授予所有用户访问权限。如果您需要仅 ACL 解决方案,则必须创建一个父 aco,您希望允许的所有其他 aco 都是子 aco。然后授予您的用户对父级的权限。
如果您已经有了 ACL 树结构,面包店的 ACL 插件可能会派上用场。
对于构建 ACL 树结构,蛋糕手册末尾的教程中的 build_acl()
脚本很有用。
不允许为所有用户传递参数并检查他们在操作中的角色不是一种选择吗?
【讨论】:
感谢您的回复,但如果我给了这个$this->Auth->allow('action1','action2'...)
,访问者也可以使用这些操作。我需要确保用户已登录:)
好的。我可以建议将“向所有类型的用户授予权限”这一行更改为“......对所有经过身份验证的用户”。亲切的问候。【参考方案2】:
第二个问题的解决方案是here 但这不是使用 ACL 实现的 :(
【讨论】:
RSK,因为它也使用非 ACL 组件,所以删除了“我期待仅基于 ACL 的答案”。表示。亲切的问候以上是关于Acl-cakePHP 中组的通用权限的主要内容,如果未能解决你的问题,请参考以下文章