Не удалось заставить CakePHP Cookbook работать с простым примером ACL

У меня проблемы с работой ACL с CakePHP. Я работал с примером CakePHP Cookbook 2.0 application.html?highlight=app_controller" rel="nofollow">Простое приложение, контролируемое Acl, и дважды выполнил шаги, но оба раза столкнулся с одной и той же проблемой.

Вроде все настроено правильно.

  • Я могу создавать свои группы и пользователей.
  • Таблица aros содержит те же строки, что и в примере в Интернете.
  • Таблицы acos и aros_acos заполняются значениями, напоминающими статью.
  • И когда я захожу на страницу, настроенную для защиты, мне открывается страница входа.

Но когда я вхожу в систему, используя созданную мной учетную запись, я вижу следующую ошибку:

Warning (512): DbAcl::check() - 
Failed ARO/ACO node lookup in permissions check.  Node     references:
Aro: Array
(
[User] => Array
    (
        [id] => 1
        [username] => dc
        [email] => [email protected]
        [group_id] => 1
        [created] => 2011-10-27 14:58:59
        [modified] => 2011-10-27 14:58:59
    )
)  
Aco: /Posts/add [CORE/Cake/Controller/Component/AclComponent.php, line 303]

Эта учетная запись настроена как администратор, и группе администраторов предоставлен доступ ко всему... так что, если это работает, у меня не должно быть проблем... но, похоже, проблема более низкого уровня, которая возникает у меня способ. Я также могу опубликовать свои таблицы БД, если это будет полезно, но решил начать здесь. Спасибо за любую информацию, которую вы можете предоставить.


person Dave    schedule 27.10.2011    source источник
comment
Раньше я работал с тортом, и у этого плагина ACL больше проблем, чем у Картера таблеток. Просто предупреждаю. Попробуйте net.tutsplus.com/tutorials/ php/   -  person Michael D. Irizarry    schedule 28.10.2011


Ответы (2)


Документация была обновлена ​​для решения этой проблемы. Если вы добавите это в метод beforeFilter в AppController, это решит проблему.

$this->Auth->authorize = array(
    AuthComponent::ALL => array('actionPath' => 'controllers'),
    'Actions',
);
person Dave    schedule 28.10.2011

Добавьте $this->Auth->allow('initDB'); в beforeFilter()

person Anil kumar    schedule 20.07.2013