Aller au contenu

Sécurité

1. Authentification

1.1 Utilisateur

Objectif : avoir une entité Utilisateur

Travail à réaliser

  1. Générer l'entité User avec email (obligatoire et unique), password et name
  2. Création de fixtures pour avoir au moins 2 utilisateurs

Attention

Pour pouvoir encoder les mots de passe des utilisateurs depuis les fixtures : documentation DoctrineFixturesBundle et documentation Foundry.

1.2 Connexion

Objectif : avoir un formulaire de connexion fonctionnel et pouvoir se déconnecter

Travail à réaliser

  1. Création d'un formulaire de connexion
  2. Ajouter des liens dans la Navbar pour se connecter et se déconnecter

1.3 Inscription

Objectif : avoir un formulaire d'inscription

Travail à réaliser

  1. Création du formulaire d'inscription
    • Ne pas mettre en place la fonctionnalité d'activation de compte par email
  2. Ajouter un lien dans la page de connexion pour s'inscrire

1.4 Mot de passe sécurisé

Objectif : forcer la saisie d'un mot de passe sécurisé à l'inscription

Travail à réaliser

À l'aide du bundle rollerworks/password-strength-bundle on souhaite obliger l'utilisateur à saisir un mot de passe contenant au moins :

  • une lettre minuscule
  • une lettre majuscule
  • un chiffre

2. Autorisation

Objectif : limiter l'accès aux actions de création/édition/suppression

Travail à réaliser

  1. Modifier la Navbar pour afficher/cacher les liens pour se connecter et se déconnecter suivant l'état de connexion
  2. Modifier vos fixtures pour que :
    • votre premier utilisateur soit un simple utilisateur avec uniquement le rôle ROLE_USER
    • votre second utilisateur soit un administrateur avec le rôle ROLE_ADMIN
  3. Mettre en place les restrictions d'accès suivantes :
    • Création / modification / suppression d'une citation uniquement accessible aux utilisateurs connectés
    • Création / modification / suppression d'une catégorie uniquement accessible aux administrateurs
  4. Les boutons d'actions doivent être visible uniquement des utilisateurs autorisés

Ressources :


Dernière mise à jour: February 27, 2023