Merge pull request #544 from dmstr-forks/master
Bugfix SocialNetworkAuthenticateService
This commit is contained in:
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
## dev
|
## dev
|
||||||
|
|
||||||
|
- Fix: Update last_login_at and last_login_ip on social networt authenticate (e.luhr)
|
||||||
- Enh: Keycloak auth client (e.luhr)
|
- Enh: Keycloak auth client (e.luhr)
|
||||||
- Fix: Social Network Auth (eluhr)
|
- Fix: Social Network Auth (eluhr)
|
||||||
- Enh #532: /user/registration/register now shows form validation errors
|
- Enh #532: /user/registration/register now shows form validation errors
|
||||||
|
|||||||
@ -19,12 +19,15 @@ use Da\User\Model\SocialNetworkAccount;
|
|||||||
use Da\User\Model\User;
|
use Da\User\Model\User;
|
||||||
use Da\User\Query\SocialNetworkAccountQuery;
|
use Da\User\Query\SocialNetworkAccountQuery;
|
||||||
use Da\User\Query\UserQuery;
|
use Da\User\Query\UserQuery;
|
||||||
|
use Da\User\Traits\ModuleAwareTrait;
|
||||||
use Yii;
|
use Yii;
|
||||||
use yii\authclient\AuthAction;
|
use yii\authclient\AuthAction;
|
||||||
use yii\helpers\Url;
|
use yii\helpers\Url;
|
||||||
|
|
||||||
class SocialNetworkAuthenticateService implements ServiceInterface
|
class SocialNetworkAuthenticateService implements ServiceInterface
|
||||||
{
|
{
|
||||||
|
use ModuleAwareTrait;
|
||||||
|
|
||||||
protected $controller;
|
protected $controller;
|
||||||
protected $authAction;
|
protected $authAction;
|
||||||
protected $client;
|
protected $client;
|
||||||
@ -50,7 +53,7 @@ class SocialNetworkAuthenticateService implements ServiceInterface
|
|||||||
$account = $this->socialNetworkAccountQuery->whereClient($this->client)->one();
|
$account = $this->socialNetworkAccountQuery->whereClient($this->client)->one();
|
||||||
if (!$this->controller->module->enableSocialNetworkRegistration && ($account === null || $account->user === null)) {
|
if (!$this->controller->module->enableSocialNetworkRegistration && ($account === null || $account->user === null)) {
|
||||||
Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Registration on this website is disabled'));
|
Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Registration on this website is disabled'));
|
||||||
$this->authAction->setSuccessUrl(Url::to(['/user/security/login']));
|
$this->authAction->setSuccessUrl(Url::to(['/' . $this->getModule()->id . '/security/login']));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -58,7 +61,7 @@ class SocialNetworkAuthenticateService implements ServiceInterface
|
|||||||
$account = $this->createAccount();
|
$account = $this->createAccount();
|
||||||
if (!$account) {
|
if (!$account) {
|
||||||
Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Unable to create an account.'));
|
Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Unable to create an account.'));
|
||||||
$this->authAction->setSuccessUrl(Url::to(['/user/security/login']));
|
$this->authAction->setSuccessUrl(Url::to(['/' . $this->getModule()->id . '/security/login']));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -72,11 +75,16 @@ class SocialNetworkAuthenticateService implements ServiceInterface
|
|||||||
if ($account->user instanceof User) {
|
if ($account->user instanceof User) {
|
||||||
if ($account->user->getIsBlocked()) {
|
if ($account->user->getIsBlocked()) {
|
||||||
Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Your account has been blocked.'));
|
Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Your account has been blocked.'));
|
||||||
$this->authAction->setSuccessUrl(Url::to(['/user/security/login']));
|
$this->authAction->setSuccessUrl(Url::to(['/' . $this->getModule()->id . '/security/login']));
|
||||||
} else {
|
} else {
|
||||||
Yii::$app->user->login($account->user, $this->controller->module->rememberLoginLifespan);
|
$result = Yii::$app->user->login($account->user, $this->controller->module->rememberLoginLifespan);
|
||||||
$this->authAction->setSuccessUrl(Yii::$app->getUser()->getReturnUrl());
|
if ($result) {
|
||||||
$result = true;
|
$account->user->updateAttributes([
|
||||||
|
'last_login_at' => time(),
|
||||||
|
'last_login_ip' => $this->controller->module->disableIpLogging ? '127.0.0.1' : Yii::$app->request->getUserIP(),
|
||||||
|
]);
|
||||||
|
$this->authAction->setSuccessUrl(Yii::$app->getUser()->getReturnUrl());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->authAction->setSuccessUrl($account->getConnectionUrl());
|
$this->authAction->setSuccessUrl($account->getConnectionUrl());
|
||||||
|
|||||||
Reference in New Issue
Block a user