CakePHP ACL给出错误

时间:2012-03-25 09:22:35

标签: cakephp acl

我在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 :(得分:0)

用户测试属于您的Aro表格中的Aro 14 。表Aro中的parent_id字段定义树。

// 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设置中,cake的ACL组件无法找到 14 。 如果您想让自己的生活更轻松,可以尝试Acl Plugin。这确实简化了一些明显的任务。