accessRules и redirect

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

accessRules и redirect

Сообщение Bublik »

В контроллере имеется accessRules:

Код: Выделить всё

    public function accessRules()
    {
        return array(
            array(  'allow',
                    'actions' => array('index'),
                    'expression' => 'Yii::app()->user->isAdmin == TRUE',
            ),
            array('deny',
                    'actions' => array('index'),
                    'users' => array('*')),
        );
    }
 
Каким образов при expression == FALSE делать редирект пользователя на произвольный контроллер/метод?
Аватара пользователя
Koduc
Сообщения: 140
Зарегистрирован: 2011.02.15, 18:56

Re: accessRules и redirect

Сообщение Koduc »

Тут, мне думается, надо делать проверку в методе init(). Что-то типа:

Код: Выделить всё

public function init() { 
  if(!Yii::app()->user->isGuest && Yii::app()->user->isAdmin === false){
    $this->redirect(..);
  }
  return parent::init(); 
}
 
Дополнительно нужна проверка на залогиненность пользователя (isGuest). Иначе если пользователь не залогинен - выкинет ошибку.
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Re: accessRules и redirect

Сообщение Bublik »

Это понятно :)

Возможности сдедать через фильтры нет?
Arnowt
Сообщения: 182
Зарегистрирован: 2013.09.13, 11:11

Re: accessRules и redirect

Сообщение Arnowt »

Каким образов при expression == FALSE делать редирект пользователя на произвольный контроллер/метод?
+1

Причем я так понимаю что где-то скрытый механизм есть, потому как если юзер не залогинен, то его редиректит в экшин авторизации.

Код: Выделить всё

array('allow',
    'actions'=>array('view','update'),
    'expression'=>'!$user->isGuest AND @$_GET["id"]==$user->id',
    ),
....
array('deny','users'=>array('*'))//вместо этого сделать редирект?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: accessRules и redirect

Сообщение SiZE »

Bublik писал(а):Возможности сдедать через фильтры нет?
Такая возможность сильно попахивает.
Ответить