我正在构建一个需要使用ACL的应用程序。我试图在我的一个控制器中检查操作中的权限。这是我的蛋糕控制台代码,有效:
./cake acl check Group.83 controllers all
Group.83 is allowed.
但是,在我的控制器中,当我使用此代码时,应该返回true:
$ checkPerm = $ this-> Acl-> check('Group.83','controllers','all');
我收到此错误:
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references:
Aro: Group.83
Aco: controllers [CORE/cake/libs/controller/components/acl.php, line 273]
我知道我的ACL设置正确,否则蛋糕控制台命令会失败。我认为它在我的控制器中的东西,但我不确定是什么原因导致这个错误。有什么想法吗?
答案 0 :(得分:1)
shell使用点语法,因为数组或正斜杠不起作用。然后shell使用数组语法提取并使组件可读。将支票更改为:
$checkPerm = $this->Acl->check(array(
'model' => 'Group',
'foreign_key' => 83
), 'controllers', 'all');
这应该照顾它!