модуль Rights
модуль Rights
Всем привет.
В общем, мне нужен был инструмент для управления ролями.
Создавать, назначать ролям задачи, операции. Ну короче динамическое управление ролями.
Посмотрев существующие решении, я попробовал прикрутить модуль Rights.
Прикрутил, поклацал, мне понравился.
Если пользователь авторизирован - там да, нормально выхватываются роли пользователей, вобщем работает
с авторизироваными пользователями как часы.
Проблема с незалогинеными.
Не пойму как назначить уже описанную, и сохраненной в базе, роль гостя, незалогиненым пользователям.
Кто использовал этот модуль, подскажите как настроить присвоение роли для не залогиненым пользователям?
Почитал доку, там все на англиском, я не особо силен в нем, но настроить получилось, но момент с ролью guest там как-то не нашел.
Помогите, мож есть ссылочка где описана настройка именно этого момента, или так объясните.
Спасибо
В общем, мне нужен был инструмент для управления ролями.
Создавать, назначать ролям задачи, операции. Ну короче динамическое управление ролями.
Посмотрев существующие решении, я попробовал прикрутить модуль Rights.
Прикрутил, поклацал, мне понравился.
Если пользователь авторизирован - там да, нормально выхватываются роли пользователей, вобщем работает
с авторизироваными пользователями как часы.
Проблема с незалогинеными.
Не пойму как назначить уже описанную, и сохраненной в базе, роль гостя, незалогиненым пользователям.
Кто использовал этот модуль, подскажите как настроить присвоение роли для не залогиненым пользователям?
Почитал доку, там все на англиском, я не особо силен в нем, но настроить получилось, но момент с ролью guest там как-то не нашел.
Помогите, мож есть ссылочка где описана настройка именно этого момента, или так объясните.
Спасибо
Re: модуль Rights
Код: Выделить всё
'authManager'=>array(
'class'=>'RDbAuthManager',
'defaultRoles'=>array('Guest'),
...
),
Re: модуль Rights
Dismal только нужно прописать в конфиге ?
Но почему-то - мне выдавало ошибку, (насколько я помню, просто проэкта дома нету, он на работе)
что типо параметр defaultRoles не найдем. Этот параметр нужно определять в RightModule.php?
Или такого не может быть?
Спасибо
Код: Выделить всё
...
'defaultRoles'=>array('Guest'),
...
что типо параметр defaultRoles не найдем. Этот параметр нужно определять в RightModule.php?
Или такого не может быть?
Спасибо
Re: модуль Rights
аааа, сори, я походу этот параметр писал в
Код: Выделить всё
'rights' => array(
...
'guestName' => 'Guest', // Name of the guest role.
'defaultRoles' => 'Guest',
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
Вопрос не по совсем по теме поста, но тоже про модуль Rights
Используется модуль Yii-user - все работает вроде бы как надо.
Пытаюсь поставить Rights - делаю все как в статье http://habrahabr.ru/post/127052/
Но возникает проблема-
постоянный редирект на site/login - т.е. браузер выдает ошибку - что редирект зациклен.
Разбиравшись мне показалось - что там идет редирект с site/login на profile - и обратно на site/login
В чем может быть дело?
Может кто сталкивался?
Используется модуль Yii-user - все работает вроде бы как надо.
Пытаюсь поставить Rights - делаю все как в статье http://habrahabr.ru/post/127052/
Но возникает проблема-
постоянный редирект на site/login - т.е. браузер выдает ошибку - что редирект зациклен.
Разбиравшись мне показалось - что там идет редирект с site/login на profile - и обратно на site/login
В чем может быть дело?
Может кто сталкивался?
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Re: модуль Rights
Нет прав на site/login у роли пользователя (скорее всего гость)porcelanosa писал(а): постоянный редирект на site/login - т.е. браузер выдает ошибку - что редирект зациклен.
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
Спасибо, вроде бы заработало.Dismal писал(а):Нет прав на site/login у роли пользователя (скорее всего гость)porcelanosa писал(а): постоянный редирект на site/login - т.е. браузер выдает ошибку - что редирект зациклен.
А права я правильно выставляю в RController.
Код: Выделить всё
public function allowedActions()
{
return 'view, cat_view, index, news_view, error, site/login';
}
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Re: модуль Rights
Можно через allowedActions(), можно вообще не указывать фильтр Rights чтобы доступ ко всему контроллеру дать.porcelanosa писал(а):А права я правильно выставляю в RController.Код: Выделить всё
public function allowedActions() { return 'view, cat_view, index, news_view, error, site/login'; }
Можно создать роль по умолчанию например Guest и добавить правило RBAC, разрешающее гостям ходить на site/login
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
1) А если убрать фильтр - как он вообще работать будет?Dismal писал(а): Можно через allowedActions(), можно вообще не указывать фильтр Rights чтобы доступ ко всему контроллеру дать.
Можно создать роль по умолчанию например Guest и добавить правило RBAC, разрешающее гостям ходить на site/login
2) Роль по умолчанию создана. А вот как ее добавить в RBAC? - Т.е. она есть в таблице
и прописана вроде бы
Код: Выделить всё
'authManager'=>array(
'class'=>'RDbAuthManager',
'defaultRoles'=>array('Authenticated', 'Guest'),// дефолтная роль
'connectionID'=>'db',
),
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Re: модуль Rights
Просто не будет ограничений в контроллере для всех. Если контроллер полностью публичный, например во фронтенде.porcelanosa писал(а):1) А если убрать фильтр - как он вообще работать будет?
На вкладке Permissions создайте item для контроллера и нужного action, и добавьте разрешение гостям (Assign в колонке Guest)porcelanosa писал(а): 2) Роль по умолчанию создана. А вот как ее добавить в RBAC? - Т.е. она есть в таблице
Re: модуль Rights
Отпишусть тут, чтобы не поднимать новую тему.
Модуль поставил, но при попытке зайти на закладку Assignments получаю ошибку:
include($data->getAssignmentsText(CAuthItem.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
Никто не подскажет в чем причина?
версии: rights 1.3.0, yii 1.1.12-dev
Модуль поставил, но при попытке зайти на закладку Assignments получаю ошибку:
include($data->getAssignmentsText(CAuthItem.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
Никто не подскажет в чем причина?
версии: rights 1.3.0, yii 1.1.12-dev
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
Опять про связку yii-user и rights
А как все-таки определить, что пользователь superUser или там какая у него роль.
Yii::app()->user->isSuperuser у меня получается пустой
И в меню все равно выводится ссылка - впрочем даже для разлогиненного пользователя
Может где-то есть описание использования
Нашла вот но че-то там половина не работает.
На данный момент главный вопрос: как определить роль пользователя (хотя бы суперюзер или нет) и его возможности (permissions) в конкретном контроллере (или view)
Буду благодарна за примеры использования.
А как все-таки определить, что пользователь superUser или там какая у него роль.
Yii::app()->user->isSuperuser у меня получается пустой
И в меню все равно выводится ссылка
Код: Выделить всё
array('url' => '/cp', 'label' => 'admin', 'visible' => Yii::app()->user->isSuperuser),
Может где-то есть описание использования
Нашла вот но че-то там половина не работает.
На данный момент главный вопрос: как определить роль пользователя (хотя бы суперюзер или нет) и его возможности (permissions) в конкретном контроллере (или view)
Буду благодарна за примеры использования.
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Re: модуль Rights
Создайте роль admin присвойте ее пользователю.
Проверять можно так:
Все доступные функции можно посмотреть в классах CDbAuthManager и RDbAuthManager
Проверить доступ в контроллере можно например так:
где, array('owner_id'=>$model->owner_id) - это параметры bizrule (использовать необязательно)
Но если все таки bizrule используете, то в базе оно будет выглядеть так:
return ($params['owner_id'] == YII::app()->user->id);
Проверять можно так:
Код: Выделить всё
array('url' => '/cp', 'label' => 'admin', 'visible'=>Yii::app()->authManager->isAssigned('admin',Yii::app()->user->id)),
Проверить доступ в контроллере можно например так:
Код: Выделить всё
if (!YII::app()->user->checkAccess('Admin.Article.View',array('owner_id'=>$model->owner_id)))
throw new CHttpException(403,'Access denied.');
Но если все таки bizrule используете, то в базе оно будет выглядеть так:
return ($params['owner_id'] == YII::app()->user->id);
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
Так с этим разобралисьDismal писал(а):Создайте роль admin присвойте ее пользователю.
Проверять можно так:Все доступные функции можно посмотреть в классах CDbAuthManager и RDbAuthManagerКод: Выделить всё
array('url' => '/cp', 'label' => 'admin', 'visible'=>Yii::app()->authManager->isAssigned('admin',Yii::app()->user->id)),
Проверить доступ в контроллере можно например так:где, array('owner_id'=>$model->owner_id) - это параметры bizrule (использовать необязательно)Код: Выделить всё
if (!YII::app()->user->checkAccess('Admin.Article.View',array('owner_id'=>$model->owner_id))) throw new CHttpException(403,'Access denied.');
Но если все таки bizrule используете, то в базе оно будет выглядеть так:
return ($params['owner_id'] == YII::app()->user->id);
А вот как мне работать с rights?
Есть задача, к примеру, редактирование новостей:
контроллер NewsController.php находится в папке controllers/cp/ - экшен actionUpdate()
Создаем операцию
Создаем роль
Правильно это?
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Re: модуль Rights
на вкладке "разрешения" должны генерироваться item'ы для контроллеров.
Там же в колонке под именем роли напротив нужного item'а жмем Assign(назначить).
На вкладке "операции" можно прописывать bizrule для операций.
В данном случае скорее всего у роли "Редактор новостей" будет parent "Админ"
на вкладке "разрешения" даем редактору доступ к операции "cp/news/update"
Если сгенерирована операция автоматически оно должно уже работать. Но не знаю как оно ведет себя с контроллерами из подпапки
Так что возможо потребуется в контроллере:
Там же в колонке под именем роли напротив нужного item'а жмем Assign(назначить).
На вкладке "операции" можно прописывать bizrule для операций.
В данном случае скорее всего у роли "Редактор новостей" будет parent "Админ"
на вкладке "разрешения" даем редактору доступ к операции "cp/news/update"
Если сгенерирована операция автоматически оно должно уже работать. Но не знаю как оно ведет себя с контроллерами из подпапки
Так что возможо потребуется в контроллере:
Код: Выделить всё
if (!YII::app()->user->checkAccess('cp/news/update')
throw new CHttpException(403,'Access denied.');
Re: модуль Rights
Уффффффф , спасибо что версию написала, На 1.1.11 тоже самое на 1.1.10 ВСЕ НОРМАЛЬНО !kosenka писал(а):Отпишусть тут, чтобы не поднимать новую тему.
Модуль поставил, но при попытке зайти на закладку Assignments получаю ошибку:
include($data->getAssignmentsText(CAuthItem.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
Никто не подскажет в чем причина?
версии: rights 1.3.0, yii 1.1.12-dev
Проверил еще раз , видимо это связано с php 5.2 , т.к. на 5.3 все работает ! Что от там в апдейтах не так...
Последний раз редактировалось AlexMist 2012.08.05, 13:49, всего редактировалось 1 раз.
Re: модуль Rights
del
Последний раз редактировалось AlexMist 2012.08.04, 17:58, всего редактировалось 1 раз.
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
1.1.11 -требования php 5.3 минимальные.AlexMist писал(а):Уффффффф , спасибо что версию написала, На 1.1.11 тоже самое, а на 1.1.10 ВСЕ НОРМАЛЬНО !AlexMist писал(а):kosenka писал(а):Отпишусть тут, чтобы не поднимать новую тему.
Модуль поставил, но при попытке зайти на закладку Assignments получаю ошибку:
include($data->getAssignmentsText(CAuthItem.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
Никто не подскажет в чем причина?
версии: rights 1.3.0, yii 1.1.12-dev
Проверил еще раз , видимо это связано с php 5.2 , т.к. на 5.3 все работает ! Что от там в апдейтах не так...
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Re: модуль Rights
Странно , но в requirements все тот же 5,1
Код: Выделить всё
version_compare(PHP_VERSION,"5.1.0",">="),
- porcelanosa
- Сообщения: 570
- Зарегистрирован: 2010.03.16, 04:31
- Откуда: Москва
Re: модуль Rights
да извините Requirement PHP 5.1.0 or aboveAlexMist писал(а):Странно , но в requirements все тот же 5,1Код: Выделить всё
version_compare(PHP_VERSION,"5.1.0",">="),
Это я с 2.0 перепутала
Our next major release Yii 2.0 will be full rebuilt on top of PHP 5.3.0+,
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы