Bonjour, j'ai une application symfony 6 avec easyAdmin et je souhaite qu'après le login, les users 'ROLE_USER' soit redirect sur la page /home et les users 'ROLE_ADMIN' sur la page /admin mais je ne trouve pas comment faire.
mon Login controller :
"namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class LoginController extends BaseController
{
/**
@Route("/", name="login")
*/
public function index(AuthenticationUtils $authenticationUtils): Response
{
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render('login/index.html.twig', [
'lastUsername' => $lastUsername,
'error' => $error,
]);
}
}"
pour l'instant je redirect sur la page /admin depuis le template et j'ai bloqué l'accès à la page /admin aux 'ROLE_USER' dans mon security.yaml. Donc les users n'ayant pas les droits sont redirect par default sur la page home mais l'url affiche quand même '/admin'...
Y'a t il une 'bonne' manière de faire ?
Bonjour,
il y a différentes façons de gérer ça, mais si tu as un seul mode d'authentification, le simple serait de faire ça dans l'authenticator (généré avec le make:auth) dans la méthode 'onAuthenticationSuccess'.
Bonjour gillesr,
Le problème c'est que je n'ai pas utilisé le make:auth...
J'ai fais un make:user puis un make:controller LoginController qui me sert juste à renvoyer le form et les erreurs de login.