application\modules\social\controllers\UserController::actionLogin PHP Method

actionLogin() public method

public actionLogin ( )
    public function actionLogin()
    {
        try {
            if ($this->service->authenticate()) {
                $identity = new UserIdentity($this->service);
                if ($identity->authenticate() && Yii::app()->getUser()->login($identity)) {
                    Yii::app()->getUser()->setFlash(YFlashMessages::SUCCESS_MESSAGE, Yii::t('SocialModule.social', 'You successfully logged in!'));
                    $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));
                }
                /* @var $user User */
                if ($this->service->hasAttribute('email') && ($user = Yii::app()->userManager->findUserByEmail($this->service->email))) {
                    if ($user->status == User::STATUS_NOT_ACTIVE) {
                        Yii::app()->getUser()->setFlash(YFlashMessages::INFO_MESSAGE, Yii::t('SocialModule.social', 'You need to activate your account. Check your email.'));
                        $this->redirect(['/user/account/login']);
                    }
                    if ($user->status == User::STATUS_BLOCK) {
                        Yii::app()->getUser()->setFlash(YFlashMessages::WARNING_MESSAGE, Yii::t('SocialModule.social', 'You account is blocked.'));
                        $this->redirect(['/user/account/login']);
                    }
                    if ($user->status == User::STATUS_ACTIVE) {
                        Yii::app()->getUser()->setFlash(YFlashMessages::INFO_MESSAGE, Yii::t('SocialModule.social', 'Account with this email address already exists!  Please, login if you want to join this social network to your account.'));
                        $this->redirect(['/social/connect', 'service' => $this->service->getServiceName()]);
                    }
                }
                Yii::app()->getUser()->setFlash(YFlashMessages::SUCCESS_MESSAGE, Yii::t('SocialModule.social', 'You\'ve successfully logged in, please complete the registration!'));
                $this->redirect(['/social/register', 'service' => $this->service->getServiceName()]);
            }
            $this->redirect('/login');
        } catch (EAuthException $e) {
            Yii::app()->getUser()->setFlash('error', 'EAuthException: ' . $e->getMessage());
            $this->redirect('/login');
        }
    }