В доках читаю после "Приведём пример построения иерархии авторизации с использованием данного API:" .
Идет код(***) с эл-тами авторизации. Не написано куда этот код вставлять. Инклудить этот код в index.php перед CApplication::run() ?
Для CPhpAuthManager смотрю есть возможность хранить эти настройки в файле X. Про формат этого файла ни слова. Но есть код его формирующий. Так может этот код (***) надо где то отдельно держать и потом когда что то в нем изменилось - пересохранять в файле X. И это вручную что ли делать или контроллер для этого заводить(и в контроллере этот код держать)?
Спасибо.
Авторизация RBAC
Авторизация RBAC
Yii2 universal module sceleton - for basic and advanced templates
-
- Сообщения: 60
- Зарегистрирован: 2012.08.15, 15:41
Re: Авторизация RBAC
Это уж куда вам удобней. Если у вас статичный набор юзеров, ролей, операций, то храните в файлах, вроде был про это отдельный рецепт.Не написано куда этот код вставлять.
Если хотите иметь возможность управлять через базу данных - пишите соответствующий интерфейс. Можете скачать и посмотреть как устроен, например, Srbac:
http://www.yiiframework.com/extension/srbac
-
- Сообщения: 225
- Зарегистрирован: 2013.03.10, 12:47
Re: Авторизация RBAC
Юзеры хранятся в базе, 4 роли:гость, юзер, администратор, модератор.Vladimir P писал(а):Это уж куда вам удобней. Если у вас статичный набор юзеров, ролей, операций, то храните в файлах, вроде был про это отдельный рецепт.Не написано куда этот код вставлять.
Если хотите иметь возможность управлять через базу данных - пишите соответствующий интерфейс. Можете скачать и посмотреть как устроен, например, Srbac:
http://www.yiiframework.com/extension/srbac
Тогда как?И как дать понять фреймворку что надо загрузить этот файл?
Re: Авторизация RBAC
Пользователи - как их набор может быть статическим?Это уж куда вам удобней. Если у вас статичный набор юзеров
Сама последовательность работы не понятна.
Yii2 universal module sceleton - for basic and advanced templates
-
- Сообщения: 60
- Зарегистрирован: 2012.08.15, 15:41
Re: Авторизация RBAC
Вот же рецепт, подробный вроде:
http://www.yiiframework.ru/doc/cookbook ... .rbac.file
Если в нем что-то непонятно, то на форуме есть тема с обсуждением рецепта.
По полной программе, с базой и интерфейсом, это сделано в экстеншене Srbac, откройте, посмотрите.
http://www.yiiframework.ru/doc/cookbook ... .rbac.file
Если в нем что-то непонятно, то на форуме есть тема с обсуждением рецепта.
По полной программе, с базой и интерфейсом, это сделано в экстеншене Srbac, откройте, посмотрите.
Re: Авторизация RBAC
Только сейчас с этой темой разбирался. Читай вот этот рецепт http://yiiframework.ru/doc/cookbook/ru/access.rbac.file
Когда дойдешь до строки:
А вот так:
т.е. вместо стандартного 'users'=>array('...'), мы передаем 'roles'=>array('...'), в массив которого мы передаем название роли, которые прописали в auth.php
Когда дойдешь до строки:
тут в меня был ступор.. ведь есть public function accessRules().. как при помощи неё использовать полученные роли?Теперь можно пользоваться:
if(Yii::app()->user->checkAccess('administrator')){
echo "hello, I'm administrator";
}
А вот так:
Код: Выделить всё
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'roles'=>array('guest'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'roles'=>array('2'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'roles'=>array('0'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
Re: Авторизация RBAC
Теперь понятней.
Про ручную настройку файла конфига авторизации конечно интересно, но насколько удобно...
Получается что методами CAuthManager для построения иерархии я воспользоваться далее не смогу.
Потому что их надо сохранять после изменений (о чем в руководстве не было сказано, в общем это и была причина затруднений), но я сохранять их не могу, т.к. в примере каждый раз идет привязка текущего пользователя к роли и при сохранении будет конфликт (эксепшн) с уже имеющейся там записью о привязке(сохраненной при любом предыдущем сохранении).
Наверное лучше всю эту логику по ролям хранить отдельно где то в коде, и она будет первичной. И при изменениях просто удалять файл protected/config/auth.php и пересоздавать его заново с изменившейся логикой, а привязку ролей к пользователю уже делать как в примере "на лету".
Про ручную настройку файла конфига авторизации конечно интересно, но насколько удобно...
Получается что методами CAuthManager для построения иерархии я воспользоваться далее не смогу.
Потому что их надо сохранять после изменений (о чем в руководстве не было сказано, в общем это и была причина затруднений), но я сохранять их не могу, т.к. в примере каждый раз идет привязка текущего пользователя к роли и при сохранении будет конфликт (эксепшн) с уже имеющейся там записью о привязке(сохраненной при любом предыдущем сохранении).
Наверное лучше всю эту логику по ролям хранить отдельно где то в коде, и она будет первичной. И при изменениях просто удалять файл protected/config/auth.php и пересоздавать его заново с изменившейся логикой, а привязку ролей к пользователю уже делать как в примере "на лету".
Yii2 universal module sceleton - for basic and advanced templates