public function actionLogin()
{
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}
$rr = new RequestResponse();
$model = new LoginFormUsernameOrEmail();
//Запрос на валидацию ajax формы
if ($rr->isRequestOnValidateAjaxForm()) {
return $rr->ajaxValidateForm($model);
}
//Запрос ajax post
if ($rr->isRequestAjaxPost()) {
if ($model->load(\Yii::$app->request->post()) && $model->login()) {
$rr->success = true;
$rr->message = 'Авторизация прошла успешно';
if ($ref = UrlHelper::getCurrent()->getRef()) {
$rr->redirect = $ref;
} else {
$rr->redirect = Yii::$app->getUser()->getReturnUrl();
}
} else {
$rr->message = 'Не удалось авторизоваться';
}
return (array) $rr;
} else {
if (\Yii::$app->request->isPost) {
if ($model->load(\Yii::$app->request->post()) && $model->login()) {
if ($ref = UrlHelper::getCurrent()->getRef()) {
return $this->redirect($ref);
} else {
return $this->goBack();
}
}
}
}
return $this->render('login', ['model' => $model]);
}