Cakephp ACO别名不';t与';控制器/控制器';价值
我不熟悉CakePHP中的ACL。我相信我的管理员组设置正确,可以完全访问Cakephp ACO别名不';t与';控制器/控制器';价值,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我不熟悉CakePHP中的ACL。我相信我的管理员组设置正确,可以完全访问“控制器”ACO。但是,当我尝试转到任何未明确公开的控制器或操作时,我会遇到一个错误 Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references: Aro: Array ( [User] => Array ( [id] => 9
“控制器”
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'
条目作为别名。此条目有一个引用'controllers/Users'
的父id,而该父id又引用'controllers'
在我的“aros\u acos”
表中只有一个条目正在向管理员组授予完全权限
基于上面的错误,我做了一些挖掘,发现如果我直接尝试调用$this->Acl->Aco->node('controllers/Users/index')
返回值为false
。但是如果我在$this->Acl->Aco->node('controllers')上执行相同的查询代码>返回的值是正确的数组
有些东西显然不能正常工作,但我不知道哪里出了问题。我整天都在翻阅文档手册和API,没有找到任何理由说明为什么找不到'controllers/Users/index'
,而找到了'controllers'
。在这一点上,它似乎与/
字符有关,但我不知道为什么。我在添加Aco时使用了相同的字符串,它保存正确
谢谢 我通过在以下位置安装ACL插件发现了问题:
运行这个伟大的实用程序后,我发现我在别名中错误地添加了带有填充路径的ACO。事实证明,别名只是操作或控制器名称,并根据父级id找到正确的路径
CakePHP文档中没有很好地记录这一点,但还有什么是新的
例如:
我添加了'controllers/Users/index'
而不是'index'
希望这能帮助其他人解决这个问题!我在上面浪费了一整天。我通过在以下位置安装ACL插件发现了问题:
运行这个伟大的实用程序后,我发现我在别名中错误地添加了带有填充路径的ACO。事实证明,别名只是操作或控制器名称,并根据父级id找到正确的路径
CakePHP文档中没有很好地记录这一点,但还有什么是新的
例如:
我添加了'controllers/Users/index'
而不是'index'
希望这能帮助其他人解决这个问题!我在这上面浪费了一整天