Fix getFlashBag() type hint, reduce returns in SuspendedUserSubscriber

- SubAccountPermissionSubscriber: cast session to FlashBagAwareSessionInterface
- SuspendedUserSubscriber: merge 3 guard clauses into one, extract ALLOWED_ROUTES constant (4→2 returns)
- SuspendedUserSubscriber: cast session to FlashBagAwareSessionInterface

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-23 14:27:35 +01:00
parent e1d41e7724
commit 1032bcfb86
2 changed files with 10 additions and 11 deletions

View File

@@ -82,7 +82,9 @@ class SubAccountPermissionSubscriber implements EventSubscriberInterface
private function deny(RequestEvent $event): void
{
$event->getRequest()->getSession()->getFlashBag()->add('error', 'Vous n\'avez pas la permission d\'effectuer cette action.');
/** @var \Symfony\Component\HttpFoundation\Session\Flash\FlashBagAwareSessionInterface $session */
$session = $event->getRequest()->getSession();
$session->getFlashBag()->add('error', 'Vous n\'avez pas la permission d\'effectuer cette action.');
$event->setResponse(new RedirectResponse($this->urlGenerator->generate('app_account')));
}
}

View File

@@ -26,6 +26,8 @@ class SuspendedUserSubscriber implements EventSubscriberInterface
];
}
private const ALLOWED_ROUTES = ['app_logout', 'app_home', 'app_login'];
public function onKernelRequest(RequestEvent $event): void
{
if (!$event->isMainRequest()) {
@@ -33,20 +35,15 @@ class SuspendedUserSubscriber implements EventSubscriberInterface
}
$user = $this->security->getUser();
if (!$user instanceof User) {
return;
}
if (!$user->isSuspended()) {
return;
}
$route = $event->getRequest()->attributes->getString('_route');
if (\in_array($route, ['app_logout', 'app_home', 'app_login'], true)) {
if (!$user instanceof User || !$user->isSuspended() || \in_array($route, self::ALLOWED_ROUTES, true)) {
return;
}
$event->getRequest()->getSession()->getFlashBag()->add('error', 'Votre compte a ete suspendu. Contactez '.$this->adminEmail.'.');
/** @var \Symfony\Component\HttpFoundation\Session\Flash\FlashBagAwareSessionInterface $session */
$session = $event->getRequest()->getSession();
$session->getFlashBag()->add('error', 'Votre compte a ete suspendu. Contactez '.$this->adminEmail.'.');
$event->setResponse(new RedirectResponse($this->urlGenerator->generate('app_home')));
}
}