我是 CakePHP 中的 ACL 新手。我相信我的管理员组设置正确,可以完全访问'controllers'
ACO。但是,当我尝试转到任何未明确公开的控制器或操作时出现错误。
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references:
Aro: Array
(
[User] => Array
(
[id] => 9
[email] => Admin
[group_id] => 3
[is_active] => 1
[created] => 2013-04-08 07:59:52
[modified] => 2013-04-08 07:59:52
[Group] => Array
(
[id] => 3
[name] => Administrators
[user_count] => 2
[created] => 2013-04-08 06:34:58
[modified] => 2013-04-08 06:34:58
)
)
)
Aco: controllers/Users/index [CORE/Cake/Model/Permission.php, line 94]
在我的acos
表中有一个'controllers/Users/index'
作为别名的条目。此条目有一个引用的 parent_id 'controllers/Users'
,而后者又具有一个引用的 parent_id 'controllers'
。
我的'aros_acos'
表中只有一个条目授予管理员组完全权限。
基于上面的错误我做了一点挖掘,发现如果我直接尝试调用$this->Acl->Aco->node('controllers/Users/index');
返回值是false
. 但是,如果我对$this->Acl->Aco->node('controllers');
返回的值进行相同的查询,则该数组是正确的。
某些东西显然无法正常运行,但我无法弄清楚我哪里出错了。我整天都在挖掘文档书和 API,但没有找到任何找不到'controllers/Users/index'
的原因'controllers'
。在这一点上,它似乎与/
角色有关,但我不知道为什么。我在添加 Aco 时使用了相同的字符串,它正确保存。
谢谢!