Ejemplo n.º 1
0
 public function actionLogin()
 {
     $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);
     					
     					// специальное перенаправления для корректного закрытия всплывающего окна
     					$authIdentity->redirect();
     				}
     				else {
     					// закрытие всплывающего окна и перенаправление на cancelUrl
     					$authIdentity->cancel();
     				}
     			}
     			
     			// авторизация не удалась, перенаправляем на страницу входа
     			$this->redirect(array('site/login'));
     		}*/
     if (isset($service)) {
         $authIdentity = Yii::app()->eauth->getIdentity($service);
         $authIdentity->redirectUrl = Yii::app()->user->returnUrl;
         $authIdentity->cancelUrl = $this->createAbsoluteUrl('site/login');
         // Успешный вход
         $model = new UserGroupsUser('login');
         if ($model->login('service')) {
             if (Yii::app()->user->userModel && Yii::app()->user->userModel->holes_fresh_cnt) {
                 Yii::app()->user->setFlash('user', Yii::t('user', 'PREVED', array('{count}' => Yii::app()->user->userModel->holes_fresh_cnt, '{user}' => Yii::app()->user->userModel->name ? Yii::app()->user->userModel->name : Yii::app()->user->userModel->username)));
             }
             // Специальный редирект с закрытием popup окна
             $authIdentity->redirect();
         } else {
             // Закрываем popup окно и перенаправляем на cancelUrl
             $authIdentity->cancel();
         }
     } else {
         $model = new UserGroupsUser('login');
         // 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['UserGroupsUser'])) {
             $model->attributes = $_POST['UserGroupsUser'];
             // validate user input and redirect to the previous page if valid
             if ($model->validate() && $model->login()) {
                 if (Yii::app()->user->userModel->holes_fresh_cnt) {
                     Yii::app()->user->setFlash('user', Yii::t('user', 'PREVED', array('{count}' => Yii::app()->user->userModel->holes_fresh_cnt, '{user}' => Yii::app()->user->userModel->name ? Yii::app()->user->userModel->name : Yii::app()->user->userModel->username)));
                 }
                 $this->redirect(Yii::app()->user->returnUrl);
             }
         }
     }
     // display the login form
     if (Yii::app()->request->isAjaxRequest || isset($_GET['_isAjax'])) {
         $this->renderPartial('/user/login', array('model' => $model));
     } else {
         $this->render('/user/login', array('model' => $model));
     }
 }
Ejemplo n.º 2
0
 public function auth()
 {
     if (Yii::app()->user->isGuest) {
         $model = new UserGroupsUser('login');
         $loginmode = 'regular';
         $model->username = Yii::app()->request->getParam('login');
         $model->password = Yii::app()->request->getParam('password');
         $model->rememberMe = 0;
         if (Yii::app()->request->getParam('passwordhash')) {
             $model->password = Yii::app()->request->getParam('passwordhash');
             $loginmode = 'fromHash';
         }
         if ($model->validate() && $model->login($loginmode)) {
             return Yii::app()->user;
         } elseif ($model->username && $model->password) {
             $this->error('WRONG_CREDENTIALS');
             // Логін та пароль передані, але вони не вірні
         } else {
             $this->error('AUTHORIZATION_REQUIRED');
         }
     } else {
         return Yii::app()->user;
     }
 }