/** * Displays the login page */ public function actionLogin() { /** * Авторизация по токену для восстановления пароля */ if ($recoveryPasswordToken = Yii::app()->request->getParam('token')) { if ($user = CmsUser::getByRecoveryPasswordToken($recoveryPasswordToken)) { $log = new LoginForm(); $log->username = $user->username; $log->password = $user->password; $log->login(); $this->redirect($this->createAbsoluteUrl('UserPersonal/index', array('id' => $user->id))); } } $service = Yii::app()->request->getQuery('service'); if (isset($service)) { $authIdentity = Yii::app()->eauth->getIdentity($service); $authIdentity->redirectUrl = Yii::app()->user->returnUrl; $authIdentity->cancelUrl = $this->createAbsoluteUrl('site/login'); if ($authIdentity->authenticate()) { $identity = new ServiceUserIdentity($authIdentity); // Успешный вход if ($identity->authenticate()) { Yii::app()->user->login($identity); // Специальный редирект с закрытием popup окна $authIdentity->redirect(); } else { // Закрываем popup окно и перенаправляем на cancelUrl $authIdentity->cancel(); } } $this->redirect(array('site/login')); } //авторизация с помошью соц сетей $model = new LoginForm(); // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') { echo CActiveForm::validate($model); Yii::app()->end(); } // collect user input data if (isset($_POST['LoginForm'])) { $model->attributes = $_POST['LoginForm']; // validate user input and redirect to the previous page if valid // $model1=CmsUser::model()->findByAttributes(array('username'=>$model->username)); $model_set = CmsSetting::model()->findByPk(1); if ($model_set->podtv_email == 1) { $user = CmsUser::model()->findByAttributes(array('username' => $model->username)); $user->sendRecoveryPasswordMessage(); $this->render('login', array('model' => $model, 'flag' => true)); Yii::app()->end(); } else { if ($model->validate() && $model->login()) { $this->redirect(array('UserPersonal/index', 'id' => Yii::app()->user->id)); } } } // display the login form $this->render('login', array('model' => $model)); }