/**
  * Registration user
  */
 public function actionRegistration()
 {
     $this->layout = '//layouts/login';
     $model = new RegistrationForm();
     // ajax validator
     if (isset($_POST['ajax']) && $_POST['ajax'] === 'signup-form_id') {
         /* echo UActiveForm::validate($model);
            Yii::app()->end(); */
         $errors = CActiveForm::validate($model);
         echo $errors;
         Yii::app()->end();
     }
     if (Yii::app()->user->id) {
         $this->redirect('/');
     } else {
         $this->redirect('/login');
         if (isset($_POST['RegistrationForm'])) {
             $model->attributes = $_POST['RegistrationForm'];
             $model->verifyPassword = $model->password;
             if ($model->validate()) {
                 $soucePassword = $model->password;
                 $model->activkey = UsersModule::encrypting(microtime() . $model->password);
                 $model->password = UsersModule::encrypting($model->password);
                 $model->verifyPassword = UsersModule::encrypting($model->verifyPassword);
                 $model->status = Yii::app()->getModule('users')->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE;
                 if ($model->save()) {
                     Yii::app()->queue->subscribe($model->id, null, "User.{$model->id}");
                     if (Yii::app()->getModule('users')->sendActivationMail) {
                         $activation_url = $this->createAbsoluteUrl('/user/activation/activation', array("activkey" => $model->activkey, "email" => $model->email));
                         UsersModule::sendMail($model->email, UsersModule::t("You registered from {site_name}", array('{site_name}' => Yii::app()->name)), UsersModule::t("Please activate you account go to {activation_url}", array('{activation_url}' => $activation_url)));
                     }
                     // wellcome email
                     $subject = Yii::t('email', 'Welcome');
                     $message = Yii::t('email', 'Welcome to <a href="{url}">{catalog}</a>.', array('{url}' => $this->createAbsoluteUrl('/'), '{catalog}' => Yii::app()->name));
                     SendMail::send($model->email, $subject, $message, true);
                     if ((Yii::app()->getModule('users')->loginNotActiv || Yii::app()->getModule('users')->activeAfterRegister && Yii::app()->getModule('users')->sendActivationMail == false) && Yii::app()->getModule('users')->autoLogin) {
                         $identity = new UserIdentity($model->username, $soucePassword);
                         $identity->authenticate();
                         Yii::app()->user->login($identity, 0);
                         $this->redirect(Yii::app()->getModule('users')->returnUrl);
                     } else {
                         if (!Yii::app()->getModule('users')->activeAfterRegister && !Yii::app()->getModule('users')->sendActivationMail) {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Contact Admin to activate your account."));
                         } elseif (Yii::app()->getModule('users')->activeAfterRegister && Yii::app()->getModule('users')->sendActivationMail == false) {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UsersModule::t('Login'), Yii::app()->getModule('users')->loginUrl))));
                         } elseif (Yii::app()->getModule('users')->loginNotActiv) {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Please check your email or login."));
                         } else {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Please check your email."));
                         }
                         $this->refresh();
                     }
                 }
             } else {
                 // var_dump($model->errors);die();
             }
         }
         $this->render('/user/registration', array('model' => $model));
     }
 }
 /**
  * Displays the login page
  */
 public function actionLogin()
 {
     if (Yii::app()->user->isGuest) {
         $modelLogin = new UserLogin();
         $modelRegister = new RegistrationForm();
         $modelRecovery = new UserRecoveryForm();
         // collect user input data
         if (isset($_POST['ajax']) && $_POST['ajax'] === 'form-login') {
             $errors = CActiveForm::validate($modelLogin);
             echo $errors;
             /* if(Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer == 'http://'.Yii::app()->request->serverName.'/mkreview'){
                    	// Сохраняем в сессию единицу, чтобы сохранить данные в localStorage при создании отзыва
             		 Yii::app()->session['redirectReview'] = 1;
                    }*/
             Yii::app()->end();
         }
         if (isset($_POST['ajax']) && $_POST['ajax'] === 'form-register') {
             if (isset($_POST['RegistrationForm']['username'])) {
                 $modelRegister->fullname = $_POST['RegistrationForm']['username'];
             }
             $errors = CActiveForm::validate($modelRegister);
             if ($errors != '[]') {
                 echo $errors;
                 Yii::app()->end();
             }
         }
         if (isset($_POST['UsersLogin'])) {
             $modelLogin->attributes = $_POST['UsersLogin'];
             // validate user input and redirect to previous page if valid
             if ($modelLogin->validate()) {
                 $this->lastViset();
                 /* if(Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer == 'http://'.Yii::app()->request->serverName.'/mkreview'){
                         	// Сохраняем в сессию единицу, чтобы сохранить данные в localStorage при создании отзыва
                 			Yii::app()->session['redirectReview'] = 1;
                         }*/
                 if (Yii::app()->user->returnUrl == '/index.php' || Yii::app()->user->returnUrl == '/') {
                     $this->redirect(Yii::app()->getModule('users')->returnUrl);
                 } else {
                     $this->redirect(Yii::app()->user->returnUrl);
                 }
             } else {
                 VarDumper::dump($modelLogin->errors);
                 die;
                 // Ctrl + X    Delete line
             }
         }
         if (isset($_POST['RegistrationForm'])) {
             $modelRegister->attributes = $_POST['RegistrationForm'];
             $modelRegister->fullname = $modelRegister->username;
             $modelRegister->verifyPassword = $modelRegister->password;
             if ($modelRegister->validate()) {
                 $soucePassword = $modelRegister->password;
                 $modelRegister->activkey = UsersModule::encrypting(microtime() . $modelRegister->password);
                 $modelRegister->password = UsersModule::encrypting($modelRegister->password);
                 $modelRegister->verifyPassword = UsersModule::encrypting($modelRegister->verifyPassword);
                 $modelRegister->superuser = 0;
                 $modelRegister->status = Yii::app()->getModule('users')->activeAfterRegister ? User::STATUS_ACTIVE : User::STATUS_NOACTIVE;
                 if ($modelRegister->save()) {
                     if (Yii::app()->getModule('users')->sendActivationMail) {
                         $activation_url = $this->createAbsoluteUrl('/users/activation/activation', array("activkey" => $modelRegister->activkey, "email" => $modelRegister->email));
                         UsersModule::sendMail($modelRegister->email, UsersModule::t("You registered from {site_name}", array('{site_name}' => Yii::app()->name)), UsersModule::t("Please activate you account go to {activation_url}", array('{activation_url}' => $activation_url)));
                     }
                     // wellcome email
                     //  $subject = Yii::t('email','Welcome');
                     //  $message = Yii::t('email', 'Welcome to <a href="{url}">{catalog}</a>.', array('{url}'=>$this->createAbsoluteUrl('/'), '{catalog}'=>Yii::app()->name));
                     //  SendMail::send($modelRegister->email,$subject,$message,true);
                     if ((Yii::app()->getModule('users')->loginNotActiv || Yii::app()->getModule('users')->activeAfterRegister && Yii::app()->getModule('users')->sendActivationMail == false) && Yii::app()->getModule('users')->autoLogin) {
                         $identity = new UserIdentity($modelRegister->username, $soucePassword);
                         $identity->authenticate();
                         Yii::app()->user->login($identity, 0);
                         $this->lastViset();
                         if (Yii::app()->request->isAjaxRequest) {
                             echo '[]';
                             Yii::app()->end();
                         } else {
                             /*if(Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer == 'http://'.Yii::app()->request->serverName.'/mkreview'){
                                    	// Сохраняем в сессию единицу, чтобы сохранить данные в localStorage при создании отзыва
                             		Yii::app()->session['redirectReview'] = 1;
                                    }*/
                             if (Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer != 'http://' . Yii::app()->request->serverName . '/login') {
                                 $url = Yii::app()->request->urlReferrer;
                                 $this->redirect($url);
                             } else {
                                 $this->redirect('/');
                             }
                         }
                     } else {
                         if (!Yii::app()->getModule('users')->activeAfterRegister && !Yii::app()->getModule('users')->sendActivationMail) {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Contact Admin to activate your account."));
                         } elseif (Yii::app()->getModule('users')->activeAfterRegister && Yii::app()->getModule('users')->sendActivationMail == false) {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Please {{login}}.", array('{{login}}' => CHtml::link(UserModule::t('Login'), Yii::app()->getModule('users')->loginUrl))));
                         } elseif (Yii::app()->getModule('users')->loginNotActiv) {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Please check your email or login."));
                         } else {
                             Yii::app()->user->setFlash('registration', UsersModule::t("Thank you for your registration. Please check your email."));
                         }
                         if (Yii::app()->request->isAjaxRequest) {
                             echo '[]';
                             Yii::app()->end();
                         } else {
                             /*if(Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer == 'http://'.Yii::app()->request->serverName.'/mkreview'){
                                    	// Сохраняем в сессию единицу, чтобы сохранить данные в localStorage при создании отзыва
                             		Yii::app()->session['redirectReview'] = 1;
                                    }*/
                             if (Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer != 'http://' . Yii::app()->request->serverName . '/login') {
                                 $url = Yii::app()->request->urlReferrer;
                                 $this->redirect($url);
                             } else {
                                 $this->redirect('/');
                             }
                         }
                     }
                 }
             } else {
                 var_dump($modelRegister->errors);
                 die;
             }
         }
         // display the login form
         $this->render('application.modules.users.views.user.login', array('modelLogin' => $modelLogin, 'modelRecovery' => $modelRecovery, 'modelRegister' => $modelRegister));
     } else {
         if (Yii::app()->request->urlReferrer && Yii::app()->request->urlReferrer != 'http://' . Yii::app()->request->serverName . '/login') {
             $url = Yii::app()->request->urlReferrer;
             $this->redirect($url);
         } else {
             $this->redirect('/');
         }
     }
 }