Первая указана в названии темы: Yii::app()->user->returnUrl возвращает /favicon.ico (далее происходит 404, потому что фавикон нет да и экшена у SiteController’а тоже нет). Это происходит при входе в систему первый раз. Код:
if (isset($_POST['LoginForm'])) {
$model->attributes = $_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if ($model->validate() && $model->login()){
$url = Yii::app()->user->returnUrl;
$this->redirect($url);
}
}
Вторая связана опять же с авторизацией. На текущий момент и фронт и админка прикрыта от свободного доступа и требуется вводить пароль. Вот при входе на фронт обычно нет проблем(за исключением вышеописанной). Но войти в админку не получается, пока не войдешь на фронт. Проверял почему - не отправляется POST[LoginForm], т.е. POST в контроллер приходит пустым. Чтобы он был заполнен, нужно авторизоваться на фронте, а уж потом в админке. Не понимаю с чем связана такая кривота.
public function actionLogin()
{
$this->layout = "clear";
$model = new LoginForm;
// collect user input data
if (isset($_POST['LoginForm'])) {
$model->attributes = $_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if ($model->validate() && $model->login()){
$this->redirect(Yii::app()->user->returnUrl);
}
}
// display the login form
$this->render('login', array('model' => $model));
}
Model:
public function login()
{
if ($this->_identity === null) {
$this->_identity = new UserIdentity($this->email, $this->password);
if (!$this->_identity->authenticate()){
$this->addError('password', 'Неверный адрес электронной почты или пароль');
}
}
// если ошибок нет
if ($this->_identity->errorCode === UserIdentity::ERROR_NONE) {
$duration = $this->rememberMe ? 3600 * 24 * 30 : 0; // 30 days
Yii::app()->user->login($this->_identity, $duration);
return true;
} else
return false;
}