Я новичок в ACL в CakePHP. Я считаю, что моя группа «Администратор» настроена правильно с полным доступом к ACO 'controllers'
. Однако я получаю сообщение об ошибке, когда пытаюсь перейти к любому контроллеру или действию, которое явно не публикуется.ACO alias не работает с значением «контроллеры/контроллер»
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 и сохранил ее правильно.
Спасибо!