From 3ed866191e6ce7c2d985399f54529c2f7792d47a Mon Sep 17 00:00:00 2001 From: Mate Skoblar Date: Wed, 2 Feb 2022 12:11:30 +0000 Subject: [PATCH 1/4] Update AuthSubscriber.php Prevent error on logout when user is not logged in --- src/Event/Subscriber/AuthSubscriber.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Event/Subscriber/AuthSubscriber.php b/src/Event/Subscriber/AuthSubscriber.php index 117eeeaf3..84784ff38 100644 --- a/src/Event/Subscriber/AuthSubscriber.php +++ b/src/Event/Subscriber/AuthSubscriber.php @@ -53,6 +53,8 @@ public function onAuthenticationSuccess(AuthenticationSuccessEvent $event): void public function onLogout(LogoutEvent $event): void { + if (is_null($event->getToken())) return; + /** @var User $user */ $user = $event->getToken()->getUser(); From fb85799e6f5193ebce0dae30ae3f02497de942d7 Mon Sep 17 00:00:00 2001 From: Mate Skoblar Date: Wed, 2 Feb 2022 12:16:40 +0000 Subject: [PATCH 2/4] Update AuthSubscriber.php Additionaly prevent error when logging in already logged user (different browser) --- src/Event/Subscriber/AuthSubscriber.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Event/Subscriber/AuthSubscriber.php b/src/Event/Subscriber/AuthSubscriber.php index 84784ff38..306def2c9 100644 --- a/src/Event/Subscriber/AuthSubscriber.php +++ b/src/Event/Subscriber/AuthSubscriber.php @@ -34,6 +34,10 @@ public function onAuthenticationSuccess(AuthenticationSuccessEvent $event): void /** @var User $user */ $user = $event->getAuthenticationToken()->getUser(); $request = $this->requestStack->getCurrentRequest(); + + $existingUserAuthToken = $this->em->getRepository(UserAuthToken::class)->findOneBy(['user' => $user]); + $this->em->remove($existingUserAuthToken); + $this->em->flush(); $user->setLastseenAt(new \DateTime()); $user->setLastIp($request->getClientIp()); @@ -53,7 +57,9 @@ public function onAuthenticationSuccess(AuthenticationSuccessEvent $event): void public function onLogout(LogoutEvent $event): void { - if (is_null($event->getToken())) return; + if (is_null($event->getToken())) { + return; + } /** @var User $user */ $user = $event->getToken()->getUser(); From 7a2be95fe1dcdc19f3ed66d9e6ad6ad3b6f4cbf7 Mon Sep 17 00:00:00 2001 From: Mate Skoblar Date: Wed, 2 Feb 2022 12:20:26 +0000 Subject: [PATCH 3/4] Update AuthSubscriber.php missing use statement --- src/Event/Subscriber/AuthSubscriber.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Event/Subscriber/AuthSubscriber.php b/src/Event/Subscriber/AuthSubscriber.php index 306def2c9..711858545 100644 --- a/src/Event/Subscriber/AuthSubscriber.php +++ b/src/Event/Subscriber/AuthSubscriber.php @@ -3,6 +3,7 @@ namespace Bolt\Event\Subscriber; use Bolt\Entity\User; +use Bolt\Entity\UserAuthToken; use Bolt\Log\LoggerTrait; use Bolt\Repository\UserAuthTokenRepository; use Doctrine\ORM\EntityManagerInterface; From 7f694b9a5c14ff6f148cd8cfaef4945c9845b168 Mon Sep 17 00:00:00 2001 From: Mate Skoblar Date: Wed, 2 Feb 2022 12:38:17 +0000 Subject: [PATCH 4/4] Update AuthSubscriber.php not necessary database upgrade was necessary --- src/Event/Subscriber/AuthSubscriber.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Event/Subscriber/AuthSubscriber.php b/src/Event/Subscriber/AuthSubscriber.php index 711858545..4484fae29 100644 --- a/src/Event/Subscriber/AuthSubscriber.php +++ b/src/Event/Subscriber/AuthSubscriber.php @@ -3,7 +3,6 @@ namespace Bolt\Event\Subscriber; use Bolt\Entity\User; -use Bolt\Entity\UserAuthToken; use Bolt\Log\LoggerTrait; use Bolt\Repository\UserAuthTokenRepository; use Doctrine\ORM\EntityManagerInterface; @@ -35,11 +34,6 @@ public function onAuthenticationSuccess(AuthenticationSuccessEvent $event): void /** @var User $user */ $user = $event->getAuthenticationToken()->getUser(); $request = $this->requestStack->getCurrentRequest(); - - $existingUserAuthToken = $this->em->getRepository(UserAuthToken::class)->findOneBy(['user' => $user]); - $this->em->remove($existingUserAuthToken); - $this->em->flush(); - $user->setLastseenAt(new \DateTime()); $user->setLastIp($request->getClientIp()); /** @var Parser $uaParser */