From c1cb045960fb4f1158b37893c63b53fe2d5d4f86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Wed, 5 Oct 2022 21:59:42 +0200 Subject: [PATCH] Fixed static analyis issues --- src/Controller/UserController.php | 5 +- src/Entity/UserSystem/WebauthnKey.php | 2 +- .../UserSystem/RegisterU2FSubscriber.php | 122 ------------------ 3 files changed, 5 insertions(+), 124 deletions(-) delete mode 100644 src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php index 020a5e33..a8a2b860 100644 --- a/src/Controller/UserController.php +++ b/src/Controller/UserController.php @@ -113,7 +113,10 @@ class UserController extends AdminPages\BaseAdminController $entity->setGoogleAuthenticatorSecret(null); $entity->setBackupCodes([]); //Remove all U2F keys - foreach ($entity->getU2FKeys() as $key) { + foreach ($entity->getLegacyU2FKeys() as $key) { + $em->remove($key); + } + foreach ($entity->getWebAuthnKeys() as $key) { $em->remove($key); } //Invalidate trusted devices diff --git a/src/Entity/UserSystem/WebauthnKey.php b/src/Entity/UserSystem/WebauthnKey.php index a4de7f10..3c86fb2a 100644 --- a/src/Entity/UserSystem/WebauthnKey.php +++ b/src/Entity/UserSystem/WebauthnKey.php @@ -82,7 +82,7 @@ class WebauthnKey extends BasePublicKeyCredentialSource public static function fromRegistration(BasePublicKeyCredentialSource $registration): self { - return new static( + return new self( $registration->getPublicKeyCredentialId(), $registration->getType(), $registration->getTransports(), diff --git a/src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php b/src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php deleted file mode 100644 index 1efe9889..00000000 --- a/src/EventSubscriber/UserSystem/RegisterU2FSubscriber.php +++ /dev/null @@ -1,122 +0,0 @@ -. - */ - -declare(strict_types=1); - -/** - * This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony). - * - * Copyright (C) 2019 Jan Böhmer (https://github.com/jbtronics) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -namespace App\EventSubscriber\UserSystem; - -use App\Entity\UserSystem\U2FKey; -use App\Entity\UserSystem\User; -use App\Events\SecurityEvent; -use App\Events\SecurityEvents; -use Doctrine\ORM\EntityManagerInterface; -use R\U2FTwoFactorBundle\Event\RegisterEvent; -use Symfony\Component\EventDispatcher\EventDispatcher; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\HttpFoundation\RedirectResponse; -use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface; -use Symfony\Component\HttpFoundation\Session\Session; -use Symfony\Component\HttpFoundation\Session\SessionInterface; -use Symfony\Component\Routing\Generator\UrlGeneratorInterface; -use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; - -/** - * This subscriber is used to write U2F keys to DB, after user added them via GUI. - */ -final class RegisterU2FSubscriber implements EventSubscriberInterface -{ - private EntityManagerInterface $em; - - private bool $demo_mode; - private FlashBagInterface $flashBag; - private UrlGeneratorInterface $router; - - /** - * @var EventDispatcher - */ - private EventDispatcherInterface $eventDispatcher; - - public function __construct(UrlGeneratorInterface $router, EntityManagerInterface $entityManager, SessionInterface $session, EventDispatcherInterface $eventDispatcher, bool $demo_mode) - { - /** @var Session $session */ - $this->router = $router; - $this->em = $entityManager; - $this->demo_mode = $demo_mode; - $this->flashBag = $session->getFlashBag(); - $this->eventDispatcher = $eventDispatcher; - } - - public static function getSubscribedEvents(): array - { - return [ - 'r_u2f_two_factor.register' => 'onRegister', - ]; - } - - public function onRegister(RegisterEvent $event): void - { - //Skip adding of U2F key on demo mode - if (!$this->demo_mode) { - $user = $event->getUser(); - if (!$user instanceof User) { - throw new \InvalidArgumentException('Only User objects can be registered for U2F!'); - } - - $registration = $event->getRegistration(); - $newKey = new U2FKey(); - $newKey->fromRegistrationData($registration); - $newKey->setUser($user); - $newKey->setName($event->getKeyName()); - - // persist the new key - $this->em->persist($newKey); - $this->em->flush(); - $this->flashBag->add('success', 'tfa_u2f.key_added_successful'); - - $security_event = new SecurityEvent($user); - $this->eventDispatcher->dispatch($security_event, SecurityEvents::U2F_ADDED); - } - - // generate new response, here we redirect the user to the fos user - // profile - $response = new RedirectResponse($this->router->generate('user_settings')); - $event->setResponse($response); - } -}