Все написано. Осталось дело за малым. Авторизация написана и работает.
Вопрос:
Как сделать так чтобы при обращении к любому контроллеру и действию выполнялась проверка на
Код: Выделить всё
if (!Yii::app()->user->isGuest)
$this->redirect('/');
else
$this->redirect('/index/login');
есть еще один вопрос, не могу найти ответ или просто немного не догоняю
Есть
Код: Выделить всё
public function accessRules()
{
return array(
array('allow',
'actions'=>array('*'),
'users'=>array('adm'),// тут задать как-то группу нужно этих пользователей
),
array('allow',
'actions'=>array('create','update'),
'users'=>array('mod'),
),
array('allow',
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('usr'),
),
);
}
можно сделать наверное так
Поместить всю функцию в
/components/Controller.php
Код: Выделить всё
class Controller extends CController
class HallsController extends CController
Но тут это решение будет общим т.е. для каждого контроллера одни и те же действия для группы.
Поясню.
Есть 5-10 контролов.
Нужно чтобы группа adm имела полный доступ ко всему.Index
Pages
Halls
Some
Somepeople
ets.
Группа mod доступ на добавление,просмотр.
Группа usr только просмотр.
НО! Группа mod не могла добавлять, просматривать и остальные действия в контроллере Some,Somepeople т.е. для этой группы он как бы закрыт.
Тут вариант наверное в контроллерах где только админ нужен именно в этом контроле прописать
Код: Выделить всё
return array(
array('allow',
'actions'=>array('*'),
'users'=>array('adm'),// т.е. только админы что-то могут делать и все, остальные нет.
),
http://yadi.sk/d/UaTF-15v1JZI3 картинка для rules если можно выцепить у любого контрола любой экшн.
Кто что подскажет по данному поводу?