Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
TyurinP
цитировать
Зарегистрирован: 20 Окт 2008 13:36:01 Сообщения: 11 Откуда: Kiev
|
Добавлено: 05 Ноя 2008 13:44:56 Заголовок сообщения: Помогите разобраться в ACO для ACL |
|
|
Добрый день.
Вот начал разбираться с работой ACL и возникли первые вопросы в частности с ACO
а вопрос такой:
создавая новую ACO я потом могу задать права только 4 функции 'create', 'read', 'update', 'delete'. Поскажите как быть, если у меня в контроллере значительно больше функций, как определить права доступа для них?
Если можно приведите пример таблицы базы данных |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 05 Ноя 2008 14:43:22 Заголовок сообщения: |
|
|
1. определить права доступа как комбинацию основных 4х функций
2. создавать ACO для каждой функции _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
TyurinP
цитировать
Зарегистрирован: 20 Окт 2008 13:36:01 Сообщения: 11 Откуда: Kiev
|
Добавлено: 05 Ноя 2008 17:18:34 Заголовок сообщения: |
|
|
evilbloodydemon писал(а): | 2. создавать ACO для каждой функции |
да я понимаю, а конкретно как это должно выглядеть?
вот например я создал таблицу ACO
c ARO пока все понятно
и наконец AROS_ACOS
попробовал сделать проверку Groups Controller:
Код: | function edit($id = null) {
if($this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Auth->user('id')), 'Group')){
$this->Session->setFlash('Вы имеете право редактировать группы'); |
РАБОТАЕТ!! я думаю потому, что для ARO (User c id=1 из группы administrators) и ACO (Group) полный доступ:
но если я пишу:
Код: | function edit($id = null) {
if($this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Auth->user('id')), 'Group','edit')){
$this->Session->setFlash('Вы имеете право редактировать группы'); |
т.е. добавляю в проверку action edit
выдает:
ACO permissions key edit does not exist in DbAcl::check()
Подскажите где ошибка? |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 05 Ноя 2008 19:50:19 Заголовок сообщения: |
|
|
Aco имеет 4 action: 'create', 'read', 'update', 'delete'. |
|
Вернуться к началу |
|
|
TyurinP
цитировать
Зарегистрирован: 20 Окт 2008 13:36:01 Сообщения: 11 Откуда: Kiev
|
Добавлено: 06 Ноя 2008 12:02:31 Заголовок сообщения: |
|
|
Vlad писал(а): | Aco имеет 4 action: 'create', 'read', 'update', 'delete'. |
Как быть если мне нужны и другие action? Есть ли способы установить права для них? |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 06 Ноя 2008 13:16:14 Заголовок сообщения: |
|
|
TyurinP
дерево ACO должно выглядеть так:
Код: | контроллер1
экшн1
экшн2
экшн3
груп
индекс
адд
дестрой
эдит
|
и т.д. и т.п.
Код: |
function edit($id = null) {
if($this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Auth->user('id')), 'Group/edit')){
$this->Session->setFlash('Вы имеете право редактировать группы');
|
_________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
TyurinP
цитировать
Зарегистрирован: 20 Окт 2008 13:36:01 Сообщения: 11 Откуда: Kiev
|
Добавлено: 06 Ноя 2008 17:09:48 Заголовок сообщения: |
|
|
evilbloodydemon
Спасибо!!
Воспользовался Туториалом, ссылка на который есть в другой теме форума, посвященной ACL. Вроде дело пошло |
|
Вернуться к началу |
|
|
Гость
цитировать
|
Добавлено: 15 Ноя 2008 01:17:35 Заголовок сообщения: |
|
|
TyurinP, а ссылку трудно привести? |
|
Вернуться к началу |
|
|
|