我想列出CakePHP的Acl数据库的Acos和一个Aro是否有权限,是或否。
做这件事最好的方法是什么?
发布于 2013-07-03 15:20:22
使用acl外壳
蛋糕有一个内置的acl壳,它为修改或查看acl数据提供了一个接口。它包括一个视图(树)函数,它允许查看访问控制对象(aco,"things")和访问请求对象(aro,用户)数据层次结构:
示例aco树:
$ Console/cake acl view aco
Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Aco tree:
---------------------------------------------------------------
[1] controllers
[2] Posts
[3] Posts
[4] index
---------------------------------------------------------------
示例aro树:
$ Console/cake acl view aro
Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Aro tree:
---------------------------------------------------------------
[1] Group.1
---------------------------------------------------------------
还有一个检查函数,用于确定给定的aro是否可以访问给定的aco:
$ Console/cake acl check Group.1 controllers/Posts
Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Group.1 is allowed.
谁能接触到不可能的
acl数据的本质是,检查单个组合(这个特定的用户可以访问这个特定的对象)和(尽管可能)构建一个“谁可以访问什么”的通用解决方案是相对昂贵的,这就是为什么没有核心提供的方法来回答这个问题。
但是,对于给定的acos列表,您可以很容易地调用AclComponent::检查来获得“特定用户可以访问的内容”的答案列表。可以像任何其他模型数据一样使用Aro
和Aco
模型访问acl数据。
https://stackoverflow.com/questions/17447814
复制相似问题