Symfony – Restriction d'accès
Symfony – Restriction d'accès
Cours 28 — Restriction d’accès
Introduction
Symfony permet de limiter l’accès à certaines pages.
La restriction peut être basée sur les rôles de l’utilisateur.
Restriction avec IsGranted
1
#[IsGranted('ROLE_USER')]
Seuls les utilisateurs possédant ce rôle peuvent accéder à la page.
Exemple
1
2
3
4
5
6
#[Route('/sejour')]
#[IsGranted('ROLE_USER')]
public function index(): Response
{
return new Response('Accès autorisé');
}
Restriction pour un administrateur
1
#[IsGranted('ROLE_ADMIN')]
Seuls les administrateurs peuvent accéder à la page.
Vérification dans le contrôleur
1
2
3
if (!$this->isGranted('ROLE_ADMIN')) {
throw $this->createAccessDeniedException();
}
Erreur d’accès
1
throw $this->createAccessDeniedException();
Résultat :
1
Erreur 403 - Accès interdit
Utiliser getUser()
1
$user = $this->getUser();
Permet de récupérer l’utilisateur connecté.
Exemple réel
1
2
3
4
5
6
7
8
9
10
#[Route('/profil')]
#[IsGranted('ROLE_USER')]
public function profil(): Response
{
$user = $this->getUser();
return new Response(
$user->getEmail()
);
}
Comprendre le processus
1
2
3
4
5
6
7
8
9
Utilisateur
↓
Connexion
↓
Rôle
↓
Contrôle d'accès
↓
Page autorisée ou refusée
Conclusion
La restriction d’accès permet de protéger les pages sensibles.
À retenir :
1
2
3
4
5
#[IsGranted(...)]
isGranted()
createAccessDeniedException()
This post is licensed under CC BY 4.0 by the author.