cakePHP: как ACL разрешает действие в плагине? - PullRequest
0 голосов
/ 29 июня 2010

У меня есть плагин

  plugin: tree 
  -----controller: tree
  -------------action : admin_index

Таблица БД aros_acos обновила _CRUD 1 1 1 1 для этого aco. Я кодирую $ this-> Acl-> check (массив ('model' => 'User', 'foreign_key' => 2), 'Tree / Tree / admin_index');

ошибка:

DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Array
(
    [model] => User
    [foreign_key] => 2
)

Aco: Tree/Tree/admin_index [CORE\cake\libs\controller\components\acl.php, line 273]

Все остальные действия действительны, но действие плагинов не может найти причину. Кто-нибудь, помогите мне.

Ответы [ 2 ]

0 голосов
/ 30 июня 2010
  1. Произошло изменение в Cakephp 1.3. Только index маршрут поддерживается для контроллера, который назван так же, как и плагин. Таким образом, вам нужно сначала разобраться с этим, если вы используете версию 1.3.

  2. Проверьте дерево ARO и ACO в консоли: cake acl view aco, cake acl view aro. Попробуйте проверить разрешения с консоли cake acl check YOURARO YOURACO all

0 голосов
/ 29 июня 2010

Я не понимаю, почему у вас есть дерево в качестве плагина - это основное поведение.

Пожалуйста, опубликуйте соответствующие строки из таблицы aros_acos.

Массив, который вы передаете в Acl->check, мне не подходит. Я передаю вывод $ this-> Auth-> user (), который выглядит следующим образом:

Array
(
    [User] => Array
        (
            [id] => 12
            [username] => somebody
            [group_id] => 1
        )
)

Посмотрите учебник Марка Стори - он действительно превосходен: http://mark -story.com / сообщений / просмотр / Auth-и-ACL-ан-конца в конец учебника-пт-1

...