Наше приложение в настоящее время обрабатывает все перенаправления страниц после входа в систему через контроллер сайта / входа, однако по мере того, как наше приложение и наши параметры авторизации пользователя растут, оно становится неуправляемым.Вот так ...
if (isset($_POST['LoginForm'])) {
$model->attributes = $_POST['LoginForm'];
if ($model->validate() && $model->login()) {
//Registered User
if (!Yii::app()->user->isGuest) {
// Redirect to returning URL
if(Yii::app()->user->returnUrl){
$this->redirect(Yii::app()->user->returnUrl);
}
//Role - sysadmin
if (Yii::app()->user->isSysAdmin()) {
$this->redirect(array('admin/default/sysadmin'));
}
//Role - Admin
if (Yii::app()->user->checkAccess('admin.*')) {
$this->redirect(array('admin/default/admin'));
}
//Role - Limited admin
if (Yii::app()->user->checkAccess('admin.default.index')) {
$this->redirect(array('admin/default/index'));
}
//Role - module onsite
if (Yii::app()->user->checkAccess('onsite.*')) {
$this->redirect(array('onsite/default/admin'));
}
Это всего лишь фрагмент кода, условия намного больше - должен быть лучший способ - кто-нибудь знает лучший метод?