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');
}
}