5
Securité
Avant d’entrer dans le sujet
Définir les termes suivants :
- Providers
- Firewalls
- Access Control
- Roles et Voters
- passport
- badge
N.B. : On n’utilisera pas FOSUserBundle, car ce bundle est inutile (je suis pas sûr qu’en 2024 ça soit encore utilisé)
Définir les termes suivants :
- Argon2i, Bcrypt, Plaintext, BasicHTTP
User
Avec la commande make:user créez un utilisateur. Mettez à jour également les entités Link et Reaction (grâce au Maker) pour intégrer le User.
N’oubliez pas d’ajouter la date de création du compte de l’User.
Inscription et Authentification
En utilisant le générateur, créer un formulaire d’authentification.
Après cette étape, nous allons passer sur le formulaire d’inscription. On peut utiliser le make:registration-form de symfony.
Autorisations
Hiérarchie des rôles
Pour les besoin du site, on va vouloir avoir des administrateurs qui auront les pleins pouvoirs (ROLE_ADMIN) et des utilisateurs standards (ROLE_USER). On pourra, en modifiant la base de données, promouvoir un utilisateur, mais ce n’est pas le sujet pour le moment
Définissez la hiérarchie de rôles à appliquer.
Access Control
Gérer les accès globaux au site via l’access control.
- Un visiteur n’a pas le droit d’accéder au controlleur AccountController
- Mettre la vue à jour pour ne pas afficher le bouton d’accès au profil si l’utilisateur n’est pas connecté.
Voters
Grâce aux voters, mettez en place les règles suivantes :
- Un utilisateur n’a pas le droit de supprimer les liens qui ne lui appartiennent pas
- Un administrateur a tous les droits de suppression sur les posts
- Un administrateur peut modifier le profil d’un utilisateur.
How to Use Voters to Check User Permissions (Symfony Docs)
N’oubliez pas de modifier Twig pour intégrer les nouveaux rôles