Таблица Aros в CakePHP по-прежнему включает пользователей даже после bindNode - PullRequest
2 голосов
/ 27 мая 2011

Следуя инструкциям из книги CakePHP для создания сайта, управляемого ACL , я добавил bindNode, предложив сделать его " ACL только для группы ":

//in users model
function bindNode($user) {
    return array('model' => 'Group', 'foreign_key' => $user['User']['group_id']);
}

В соответствии с этой страницей моя таблица aros должна выглядеть следующим образом:

+----+-----------+-------+-------------+-------+------+------+
| id | parent_id | model | foreign_key | alias | lft  | rght |
+----+-----------+-------+-------------+-------+------+------+
|  1 |      NULL | Group |           1 | NULL  |    1 |    2 |
|  2 |      NULL | Group |           2 | NULL  |    3 |    4 |
|  3 |      NULL | Group |           3 | NULL  |    5 |    6 |
+----+-----------+-------+-------------+-------+------+------+

Все хорошо, разрешения моей группы работают правильно... и т. д., но когда пользователи создаются, они все еще добавляются в таблицу aros.

Это нормально?Нужно ли добавлять пользователей, просто не использовать их в целях доступа?Я предполагал, что моя таблица будет выглядеть так же, как в примере (только группы, без пользователей), поэтому, когда я начал видеть добавленных пользователей, я был обеспокоен.

Ответы [ 2 ]

7 голосов
/ 01 ноября 2011

добавить следующую строку в вашей модели пользователя:

public $actsAs = array('Acl' => array('type' => 'requester', 'enabled' => false));

Ссылка: http://cakephp.lighthouseapp.com/projects/42648/tickets/1485-bindnode-still-creating-user-model-aros

1 голос
/ 02 августа 2011

попробуйте изменить на

function bindNode($user) {
    return array('Group' => array('id' => $user['User']['group_id']));
}

и удалить

function parentNode
...