2 pièce(s) jointe(s)
Capter dans un handler le fait que l'utilisateur n'est pas actif
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 :
Pièce jointe 533614
Ceci se fait grâce au handle suivant :
Code:
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'));
}
} |
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 :
Pièce jointe 533615
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.