5 - Securité

Avant d’entrer dans le sujet

Security (Symfony Docs)

N.B. : On n’utilisera pas FOSUserBundle, car ce bundle est inutile (je suis pas sûr qu’en 2024 ça soit encore utilisé)

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é.

Security (Symfony Docs)

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


Petit Remerciement à Stephan pour la maj sécurité qui m’aura servi à rédiger mon cours.