CakePHP ACL выдает ошибку - PullRequest
0 голосов
/ 25 марта 2012

Я установил это в своем AppController.php

    $this->Auth->authorize = array(
    'Actions' => array(
        'actionPath' => 'controllers/'
    )
);

Это в моей таблице Aco:

id  parent_id   model   foreign_key     alias   lft     rght
25  NULL             NULL   NULL    controllers     1   2

Это моя таблица Aro:

id  parent_id   model   foreign_key     alias   lft     rght
1   1           Group   1               NULL      27    30
15  14          User    1               NULL      28    29

Это моя таблица Aco_Aro:

id  aro_id  aco_id  _create     _read   _update     _delete
15    1       25      1             1     1            1

И я получаю эту ошибку:

    Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Array
(
    [User] => Array
        (
            [id] => 1
            [username] => Test
            [group_id] => 1
            [created] => 2012-03-24 22:47:33
            [modified] => 2012-03-24 22:47:33
        )

)

Aco: controllers/Posts/index

1 Ответ

0 голосов
/ 25 марта 2012

Пользователь Test принадлежит Aro 14 , как показано в вашей таблице Aro.Поле parent_id в таблице Aro определяет дерево.

// For eg. If i have two groups Administrator, User
Groups
id | name
11 | Administrator
22 | User

И пользователи // У меня есть таблица пользователей как

id | name | group_id
 7 |  KK  |    11
 9 |  SS  |    22

Моя таблица Aro будет

ARO
id | parent_id | alias | foreign_key  
 1 |   null    |  adm  |   11            // Group
 2 |   null    |  usr  |   22            // Group
 3 |    1      |  kk   |   7            // User
 4 |    2      |  SS   |   9            // User

В вашей настройке Aro / Acl, ACL тортакомпонент не может найти 14 .Если вы хотите сделать свою жизнь проще, вы можете попробовать Acl Plugin .Это действительно упрощает некоторые очевидные задачи.

...