Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Помогите разобраться в ACO для ACL

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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. Вроде дело пошло Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Гость

цитировать






СообщениеДобавлено: 15 Ноя 2008 01:17:35    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение Удалить сообщение

TyurinP, а ссылку трудно привести?
Вернуться к началу
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru