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:
@@ -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')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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')));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user