alfizqu,
, если у вас есть ARO и ACO, но нет связи между ними посредством записей в таблице ACO_ARO, это означает, что вы не настроили разрешения, которые ваши ARO имеют для ACO.
Действуйте так:
/*
* Copied from the tutorial, and modified, this function initializes the per-
* missions for accessing controller actions.
*/
function initDB() {
$group =& $this->User->Group;
// A D M I N S
$group->id = 3;
$this->Acl->allow($group, 'controllers');
// M A N A G E R S
$group->id = 2;
$this->Acl->deny($group, 'controllers');
$this->Acl->allow($group, 'controllers/Items','*'); ... ...
После того, как вы настроили такую функцию initDB, вы должны запустить ее один раз, вызвав ее из браузера.Если этого недостаточно, чтобы помочь вам вернуться на трассу, просто снова просмотрите базовый учебник AUTH / ACL.С уважением, Бенджамин.
Редактировать 1: Одним из важных моментов является вызов parent::beforeFilter()
в beforeFilter()
методах самоопределенных контроллеров и правильная настройка app_controller
,Если эти советы не помогли, самый эффективный способ - внимательно изучить руководство по ACL / AUTH * , начиная со свежей выпечки.Как только вы сможете его запустить и запустить, вы уверены, что сделаете это в своем приложении.
Edit 2: И не бойтесь выбросить все, что связано с ACL / AUTHваше приложение.Это звучит просто устрашающе, но может избавить от головной боли и времени отладки.
PS: Кстати, в пекарне должно быть несколько плагинов ACL / AUTH, которые можно умеренно использовать, и один в sourceforge.