我正在使用数据库ACL的修改版本制作CakePHP应用程序。CakePHP ACL:可选ACO节点(默认情况下为允许)
为了避免必须为每个控制器创建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设置为'controllers'。
或者也许有更好的方法去做呢?
我希望我已经充分说出了我的问题,我会保证澄清,如果没有。
谢谢!
此答案中的语法错误,未关闭')';请改正。 – Dariusz 2013-10-02 08:46:14