【发布时间】:2011-09-15 19:48:00
【问题描述】:
我正在使用数据库 ACL 的修改版本制作 CakePHP 应用程序。
为了避免必须为每个控制器创建 ACO 节点,我想建立一个系统,允许用户访问页面除非另有拒绝。这意味着除非绝对必要,否则我不想为控制器创建 ACO 节点。
通常,如果我无法创建 ACO 节点,当我的 isAuthorised() 函数执行 $this->Acl->check 时,我会收到类似这样的错误...
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references:
Aro: Array
(
[model] => Role
[foreign_key] => 1
)
我认为一个可行的解决方案是在执行$this->Acl->check 命令之前检查ACO 节点是否存在。如果它不存在,则可以阻止它检查权限。
有没有办法根据$this->Auth->action() 的输出(输出类似于controllers/Members/Edit)来检查ACO 节点是否存在?
我的 Auth ActionPath 设置为“控制器”。
或者也许有更好的方法?
我希望我已经充分表达了我的问题,如果没有,我会确保澄清。
谢谢!
【问题讨论】:
标签: php cakephp permissions acl