Bonjour,
Sur mon site, j'ai un formulaire d'identification en mode modal. Si j'ai une erreur d'authentification, le formulaire se ré-affiche en affichant un message flash contenant l'erreur :
Ceci se fait grâce au handle suivant :
Par contre, lorsque les identifiants sont corrects mais que l'utilisateur n'est pas encore actif (attribut 'isActive' de mon entité 'user' à null), alors j'obtiens une erreur Symfony :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?php namespace App\Handler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\RouterInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Http\Logout\LogoutSuccessHandlerInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface; class AuthenticationHandler implements AuthenticationFailureHandlerInterface, LogoutSuccessHandlerInterface { private $router; public function __construct(RouterInterface $router) { $this->router = $router; } public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { $session = $request->getSession(); $referer = $request->headers->get('referer'); $session->getFlashBag()->add('danger', $exception->getMessage()); $session->set('errorFomAuthentication', true); return new RedirectResponse($referer); } public function onLogoutSuccess(Request $request) { return new RedirectResponse($this->router->generate('home')); } }
Je ne vois pas comment faire pour capter dans ce handler le fait que l'utilisateur n'est pas actif afin d'éviter cette page d'erreur.
Quelqu'un aurait une idée?
Merci d'avance pour votre aide.
Partager