Ejemplo n.º 1
0
 public function actionConnect()
 {
     if (Yii::app()->getUser()->isAuthenticated()) {
         $this->redirect(Yii::app()->getUser()->returnUrl);
     }
     $authData = $this->service->getAuthData();
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->getUser());
     $scenario = $badLoginCount > 3 ? 'loginLimit' : '';
     $form = new LoginForm($scenario);
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         $form->setAttributes(Yii::app()->getRequest()->getPost('LoginForm'));
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->getUser(), Yii::app()->getRequest())) {
             $social = new SocialUser();
             $social->user_id = Yii::app()->getUser()->getId();
             $social->provider = $authData['service'];
             $social->uid = $authData['uid'];
             if ($social->save()) {
                 Yii::app()->getUser()->setFlash(YFlashMessages::SUCCESS_MESSAGE, Yii::t('SocialModule.social', 'Social network successfully attached to your account, you can use it to log in now.'));
                 $module = Yii::app()->getModule('user');
                 $redirect = Yii::app()->getUser()->isSuperUser() && $module->loginAdminSuccess ? [$module->loginAdminSuccess] : [$module->loginSuccess];
                 Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), 0);
                 $this->redirect(Yii::app()->getUser()->getReturnUrl($redirect));
             }
         } else {
             $form->addError('hash', Yii::t('SocialModule.social', 'Wrong email or password!'));
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), $badLoginCount + 1);
         }
     }
     $this->render('connect', ['authData' => $authData, 'model' => $form]);
 }
Ejemplo n.º 2
0
 public function actionConnect()
 {
     if (Yii::app()->getUser()->isAuthenticated()) {
         $this->redirect(Yii::app()->getUser()->returnUrl);
     }
     $authData = $this->service->getAuthData();
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->getUser());
     $scenario = $badLoginCount > 3 ? 'loginLimit' : '';
     $form = new LoginForm($scenario);
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         $form->setAttributes(Yii::app()->getRequest()->getPost('LoginForm'));
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->getUser(), Yii::app()->getRequest())) {
             $social = new SocialUser();
             $social->user_id = Yii::app()->getUser()->getId();
             $social->provider = $authData['service'];
             $social->uid = $authData['uid'];
             if ($social->save()) {
                 Yii::app()->getUser()->setFlash(YFlashMessages::SUCCESS_MESSAGE, Yii::t('SocialModule.social', 'Социальная сеть подключена к вашему аккаунту, теперь вы можете использовать ее для входа.'));
                 $module = Yii::app()->getModule('user');
                 $redirect = Yii::app()->getUser()->isSuperUser() && $module->loginAdminSuccess ? array($module->loginAdminSuccess) : array($module->loginSuccess);
                 Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), 0);
                 $this->redirect(Yii::app()->getUser()->getReturnUrl($redirect));
             }
         } else {
             $form->addError('hash', Yii::t('SocialModule.social', 'Email or password was typed wrong!'));
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), $badLoginCount + 1);
         }
     }
     $this->render('connect', array('authData' => $authData, 'model' => $form));
 }