Просто добавьте следующее в верхней части действия index () SiteController:
if(Yii::app()->user->getId()===null)
$this->redirect(array('site/login'));
Он проверит, вошел ли пользователь в систему.Если это не так, страница будет перенаправлена на страницу входа в систему.
Во избежание любых действий, не доступных не зарегистрированным пользователям, вам необходимо изменить функции accessRules () ваших контроллеров:
public function accessRules()
{
return array(
array('allow',
'actions'=>array(),
'users'=>array('*'),
),
array('allow',
'actions'=>array(),
'users'=>array('@'),
),
array('allow',
'actions'=>array(),
'users'=>array('admin'),
),
array('deny',
'actions'=>array(),
'users'=>array('*'),
),
);
}
В каждом контроллере у нас есть эта функция, и внутри нее у нас есть четыре массива.Каждый массив объявляет правило доступа.В параметре 'actions' мы указываем, какие действия будут затронуты этим правилом доступа, а в 'users' мы указываем, каким пользователям будет разрешен доступ к действиям.«*» означает всех пользователей, прошедших проверку подлинности или не прошедших проверку.«@» означает только аутентифицированных пользователей, «админ» означает, конечно, только администраторов.
Если для каких-либо параметров 'actions' не назначены фактические действия, просто удалите строку:
array('allow',
'users'=>array('admin'),
),