diff --git a/src/Controller/ActionController.php b/src/Controller/ActionController.php index 196ec336010e2739b1d4bfaaabcb52fd677fb588..b77e8068b5465e24280eb05aca3adb35f9d582f5 100644 --- a/src/Controller/ActionController.php +++ b/src/Controller/ActionController.php @@ -3,6 +3,7 @@ namespace App\Controller; use App\Entity\History; +use App\Entity\Users; use App\Entity\WebResetter; use App\Repository\HistoryRepository; use App\Repository\UsersRepository; @@ -55,7 +56,9 @@ class ActionController extends AbstractController ]); } - if (!in_array($this->getUser(), $webResetter->getUsers()->toArray()) && !$this->getUser()->isAdminAccess()) { + /** @var Users $user */ + $user = $this->getUser(); + if (!in_array($this->getUser(), $webResetter->getUsers()->toArray()) && !$user->isAdminAccess()) { return new JsonResponse([ 'success' => false, 'message' => 'You\'re not allowed to execute this action' @@ -63,7 +66,7 @@ class ActionController extends AbstractController } $historyEntry = new History(); - $historyEntry->setUser($this->getUser()); + $historyEntry->setUser($user); $historyEntry->setCommand($action); $historyEntry->setValue($requestBody["value"]); $historyEntry->setDevice($webResetter); diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 2240d0c654a479dea536ac9d93ca75fa05b0dfed..bb63df46c47f9d2baf92a0ee399eeaf87846dc3b 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -37,7 +37,7 @@ class AdminController extends AbstractController $doctrine->getManager()->persist($user); } - $user->setName($request->request->get('displayName')); + $user->setName($request->request->getString('displayName')); if($request->request->get('username') != $user->getUsername()) { if ($users->findOneBy(['username' => $request->request->get('username') ])) { $this->addFlash('error', [ @@ -47,13 +47,13 @@ class AdminController extends AbstractController return $this->redirectToRoute('app_admin_users'); } - $user->setUsername($request->request->get('username')); + $user->setUsername($request->request->getString('username')); } $user->setAdminAccess($request->request->has('admin')); $user->setEnabled($request->request->has('enabled')); if ($request->request->get('password') !== '') { $user->setPassword( - $passwordHasher->hashPassword($user, $request->request->get('password')) + $passwordHasher->hashPassword($user, $request->request->getString('password')) ); } $user->setGoogleAuthenticatorEnabled($request->request->has('totpEnabled')); @@ -85,7 +85,7 @@ class AdminController extends AbstractController } if ($request->request->get('address') != $device->getAddress()) { - if ($webResetterRepository->findOneBy(['address' => $request->request->get('address')])) { + if ($webResetterRepository->findOneBy(['address' => $request->request->getString('address')])) { $this->addFlash('error', [ 'title'=> 'Failed to save', 'message' => 'There is already a device with this address.' @@ -95,10 +95,10 @@ class AdminController extends AbstractController } } - $device->setName($request->request->get('name')); - $device->setNotes($request->request->get('notes')); - $device->setAddress($request->request->get('address')); - $device->setIcon($request->request->get('icon')); + $device->setName($request->request->getString('name')); + $device->setNotes($request->request->getString('notes')); + $device->setAddress($request->request->getInt('address')); + $device->setIcon($request->request->getString('icon')); $server = $serverRepository->find($request->request->get('server')); if($server) { @@ -138,7 +138,8 @@ class AdminController extends AbstractController } #[Route('/admin/devices/settings/{deviceId}', methods: ['GET'], name: 'app_admin_devices_parameters')] - public function deviceParametersGet(string $deviceId, WebResetterRepository $webResetterRepository) { + public function deviceParametersGet(string $deviceId, WebResetterRepository $webResetterRepository): Response + { $device = $webResetterRepository->find($deviceId); if(!$device) { throw new NotFoundHttpException('Can\'t find the device ID'); @@ -188,9 +189,9 @@ class AdminController extends AbstractController $doctrine->getManager()->persist($server); } - $server->setName($request->request->get('name')); - $server->setIpAddress($request->request->get('ipaddress')); - $server->setApikey($request->request->get('apikey')); + $server->setName($request->request->getString('name')); + $server->setIpAddress($request->request->getString('ipaddress')); + $server->setApikey($request->request->getString('apikey')); $doctrine->getManager()->flush(); diff --git a/src/Controller/DashboardController.php b/src/Controller/DashboardController.php index a6926cfbfee9750d9b02e6e955c455501ffb16cc..7a9dd0a0ca0a610a3ab6dc4ae8961b8bddee4d95 100644 --- a/src/Controller/DashboardController.php +++ b/src/Controller/DashboardController.php @@ -2,17 +2,18 @@ namespace App\Controller; +use App\Entity\Users; use App\Repository\UsersRepository; use App\Repository\WebResetterRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -use Symfony\Component\Security\Core\User\UserInterface; class DashboardController extends AbstractController { #[Route('/', name: 'dashboard')] - public function dashboard(UserInterface $userInterface, UsersRepository $usersRepository, WebResetterRepository $webResetterRepository) + public function dashboard(Users $userInterface, UsersRepository $usersRepository, WebResetterRepository $webResetterRepository): Response { $user = $usersRepository->findOneBy(['username' => $userInterface->getUsername()]); $devices = $user->getWebResetter(); diff --git a/src/Controller/HistoryController.php b/src/Controller/HistoryController.php index 9fead5c4b3114f18adad9f085f8d57df66bd92bf..12e78ac5b04a6402bfe05f21caa31d4ca1592d64 100644 --- a/src/Controller/HistoryController.php +++ b/src/Controller/HistoryController.php @@ -8,15 +8,15 @@ use App\Repository\WebResetterRepository; use Knp\Component\Pager\PaginatorInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\Routing\Annotation\Route; -use function Doctrine\ORM\QueryBuilder; class HistoryController extends AbstractController { #[Route('/history/{deviceId}', methods: ['GET'], name: 'app_history')] - public function getHistory(HistoryRepository $historyRepository, WebResetterRepository $webResetterRepository, Request $request, PaginatorInterface $paginator, string $deviceId = null) + public function getHistory(HistoryRepository $historyRepository, WebResetterRepository $webResetterRepository, Request $request, PaginatorInterface $paginator, string $deviceId = null): Response { /** * @var Users $user ; diff --git a/src/Controller/ProfileController.php b/src/Controller/ProfileController.php index e00c798948db224246b2f10c888e10b993d0f153..7027d5f4cae3961b34c2031c1e9bab907e8f35c6 100644 --- a/src/Controller/ProfileController.php +++ b/src/Controller/ProfileController.php @@ -18,8 +18,10 @@ class ProfileController extends AbstractController #[Route('/profile', name: 'app_profile')] public function index(): Response { + /** @var Users $username */ + $username = $this->getUser(); return $this->render('pages/profile.html.twig', [ - 'name' => $this->getUser()->getName() + 'name' => $username->getName() ]); } @@ -30,7 +32,7 @@ class ProfileController extends AbstractController * @var Users $user */ $user = $this->getUser(); - $user->setName($request->request->get('inputName')); + $user->setName($request->request->getString('inputName')); $doctrine->getManager()->flush(); @@ -41,9 +43,6 @@ class ProfileController extends AbstractController #[Route('/profile/password', name:'app_profile_password_change', methods: ['POST'])] public function changePassword(Request $request, ManagerRegistry $doctrine, UserPasswordHasherInterface $passwordHasher): Response { - /** - * @var Users $user - */ if ($request->request->get('inputPassword') !== $request->request->get('inputPasswordConfirm')) { $this->addFlash('error', [ 'title' => 'Passwort not changed', @@ -52,9 +51,10 @@ class ProfileController extends AbstractController return $this->redirectToRoute('app_profile'); } + /** @var Users $user */ $user = $this->getUser(); $user->setPassword( - $passwordHasher->hashPassword($user, $request->request->get('inputPassword')) + $passwordHasher->hashPassword($user, $request->request->getString('inputPassword')) ); $doctrine->getManager()->flush(); @@ -66,7 +66,8 @@ class ProfileController extends AbstractController } #[Route('/profile/totpEnable', name:'app_profile_totp_enable', methods:['POST'])] - public function enableTotp() { + public function enableTotp(): Response + { return $this->redirectToRoute('app_profile'); } @@ -92,7 +93,7 @@ class ProfileController extends AbstractController #[Route('/profile/totp/enable', methods: ['POST'], name: 'app_profile_totp_enable')] public function totpEnable(GoogleAuthenticatorInterface $totpInterface, ManagerRegistry $doctrine, Request $request): Response { - $code = $request->request->get('code'); + $code = $request->request->getString('code'); /** * @var Users $user */ @@ -116,6 +117,7 @@ class ProfileController extends AbstractController 'title' => 'TOTP Disabled', 'message' => 'TOTP was disabled successfully' ]); + /** @var Users $user */ $user = $this->getUser(); $user->setGoogleAuthenticatorEnabled(false); $doctrine->getManager()->flush(); diff --git a/src/Entity/History.php b/src/Entity/History.php index aef165bad4355f26b325e68105114eba20015905..8093d113c3033c6e9cb9c29c55021e5ab4fe487d 100644 --- a/src/Entity/History.php +++ b/src/Entity/History.php @@ -96,25 +96,25 @@ class History public function getCommandText(): string { return match ($this->command) { - 1 => 'short press', - 2 => 'long press', - 3 => 'set I2C address', - 4 => 'set short delay', - 5 => 'set long delay', + '1' => 'short press', + '2' => 'long press', + '3' => 'set I2C address', + '4' => 'set short delay', + '5' => 'set long delay', default => $this->command, }; } - public function getValueText(): string + public function getValueText(): ?string { if($this->command > 2) { - return $this->value; + return (string)$this->value; } return match ($this->value) { 1 => 'power button', 2 => 'reset button', - default => $this->value, + default => (string)$this->value, }; } } diff --git a/src/Security/UserAuthenticator.php b/src/Security/UserAuthenticator.php index 5db024e33d8fb7f89f55cab98c3f7f6efb8fe574..e22324319e5842acf4f9ad1ea87945f851812d7a 100644 --- a/src/Security/UserAuthenticator.php +++ b/src/Security/UserAuthenticator.php @@ -28,15 +28,15 @@ class UserAuthenticator extends AbstractLoginFormAuthenticator public function authenticate(Request $request): Passport { - $username = $request->request->get('username', ''); + $username = $request->request->getString('username', ''); $request->getSession()->set(Security::LAST_USERNAME, $username); return new Passport( new UserBadge($username), - new PasswordCredentials($request->request->get('password', '')), + new PasswordCredentials($request->request->getString('password', '')), [ - new CsrfTokenBadge('authenticate', $request->request->get('_csrf_token')), + new CsrfTokenBadge('authenticate', $request->request->getString('_csrf_token')), new RememberMeBadge() ] ); diff --git a/src/Twig/Components/DeviceAccordionComponent.php b/src/Twig/Components/DeviceAccordionComponent.php index 1bf40cf826897a8388ae51d20f7c5b0edfa69f21..a6cac3511c07067c415d5692af9679cd2277a8c2 100644 --- a/src/Twig/Components/DeviceAccordionComponent.php +++ b/src/Twig/Components/DeviceAccordionComponent.php @@ -11,6 +11,7 @@ use Symfony\UX\TwigComponent\Attribute\AsTwigComponent; final class DeviceAccordionComponent { public ?WebResetter $device; + /** @var array|Server[] */ public array $servers; public bool $expanded = false;