Cours 27 — Les rôles
Introduction
Les rôles permettent de contrôler l’accès aux différentes parties d’une application.
Chaque utilisateur possède un ou plusieurs rôles.
Exemple de rôle
Ce rôle correspond à un utilisateur connecté.
Définir un rôle
1
2
3
| $user->setRoles([
'ROLE_USER'
]);
|
Plusieurs rôles
1
2
3
4
| $user->setRoles([
'ROLE_USER',
'ROLE_ADMIN'
]);
|
Vérifier un rôle
1
| #[IsGranted('ROLE_USER')]
|
Seuls les utilisateurs possédant ce rôle peuvent accéder à la page.
Exemple dans un contrôleur
1
2
3
4
5
6
| #[Route('/sejour')]
#[IsGranted('ROLE_USER')]
public function index(): Response
{
return new Response('Accès autorisé');
}
|
Vérification dans le code
1
2
3
4
5
| if (
$this->isGranted('ROLE_ADMIN')
) {
// Action réservée à l'administrateur
}
|
Lire les rôles
1
2
3
| $user = $this->getUser();
$roles = $user->getRoles();
|
Rôles fréquents
1
2
3
| ROLE_USER
ROLE_ADMIN
ROLE_SUPER_ADMIN
|
Comprendre le processus
1
2
3
4
5
6
7
| Connexion
↓
Utilisateur
↓
Rôles
↓
Contrôle d'accès
|
Conclusion
Les rôles permettent de sécuriser l’application.
À retenir :
1
2
3
4
5
6
7
| setRoles()
getRoles()
#[IsGranted('ROLE_USER')]
isGranted()
|