Возможно, ваша база данных повреждена с момента последних изменений.
Я бы порекомендовал вам исправить таблицы, помните, что это отношения hasMany плюс TreeBehaviour, если действие, которое по какой-либо причине не пускается в узел контроллера, объясняеттакое поведение.
К счастью, есть кто-то, кто задумался над этим и разработал плагин ACL Manager, который позволяет исправить это с помощью консоли.
https://github.com/FMCorz/AclManager
Загрузитьплагин для вашей папки плагинов.Загрузите плагин в ваш загрузчик, если вы не загружаете все уже.Войдите на свой сервер и используйте консоль для выполнения любой из следующих команд:
./Console/cake AclExtras.AclExtras aco_sync
Вы можете получить полное руководство для всех доступных команд, таких как:
./Console/cake AclExtras.AclExtras -h
./Console/cake AclExtras.AclExtras aco_sync -h
В любое время,если вы не можете получить доступ к APP, добавьте Controller к методу authorize в вашем AppController, а затем: $ this-> Auth-> allow (), чтобы действовал любой с допустимым auth.
Пример, просто aclcheck:
$this->Auth->authorize = array(
'Actions' => array('actionPath' => 'controllers')
);
Пример проверки контроллера и ACL:
$this->Auth->authorize = array(
'Controller',
'Actions' => array('actionPath' => 'controllers')
);
Используя второй параметр, вы можете в любое время включить $this->Auth->allow()
в beforeFilter вашего контроллера, чтобы разрешить доступ, который вы хотите.