Backend PHP (BPH) Help

Mini-projet : Userbase

Étape 0 : Préparer le projet

0.1 : repository et fichiers

  1. Créez un repository GitHub public avec un README et appelez-le : coda-bph-j13.

  2. Créez un dossier userbase dans le dossier coda-bph-j13

  3. Récupérez les fichiers du projet ici.

La base de données

Créez une base de données userbase qui contient la table users suivante :

colonne

type

id

int PK AI

firstName

varchar(255)

lastName

varchar(255)

email

varchar(255)

password

varchar(255)

role

varchar(255)

Étape 1 : Mettre en place l'inscription

Dans la méthode register de votre AuthController vous allez devoir faire en sorte de traiter le formulaire d'inscription présent dans le template auth/register.html.twig.

Étape 1.1 : vérifier le formulaire

Lorsque le formulaire a été soumis, vous allez devoir effectuer plusieurs vérifications :

  1. Est-ce que tous les champs du formulaire sont présents ?

  2. Est-ce qu'il n'existe pas déjà un utilisateur avec cet email ?

  3. Est-ce que les deux mots de passe sont identiques ?

Si des champs manquent, que l'utilisateur existe déjà ou que les mots de passe ne sont pas identiques, vous allez devoir afficher un message d'erreur.

Étape 1.2 : enregistrer l'utilisateur

Si tout est bon, vous allez pouvoir enregistrer l'utilisateur, avec le rôle USER, mais avant de faire ça vous allez devoir chiffrer son mot de passe pour le stocker dans la base de données.

Pour chiffrer un mot de passe, vous pouvez utiliser la fonction password_hash de PHP.

Une fois que l'utilisateur est créé, vous allez devoir le rediriger vers la page de connexion.

Étape 2 : Mettre en place la connexion

Dans la méthode login de votre AuthController vous allez devoir faire en sorte de traiter le formulaire d'inscription présent dans le template auth/login.html.twig.

Étape 2.1 : vérifier le formulaire

Lorsque le formulaire a été soumis, vous allez devoir effectuer plusieurs vérifications :

  1. Est-ce que tous les champs du formulaire sont présents ?

  2. Est-ce qu'il existe bien un utilisateur avec cet email ?

  3. Est-ce que le mot de passe correspond à celui de l'utilisateur existant ?

Si des champs manquent, que l'utilisateur n'existe pas ou que les mots de passe ne correspondent pas, vous allez devoir afficher un message d'erreur.

Pour vérifier la correspondance du mot de passe, vous pouvez utiliser la fonction password_verify de PHP.

Étape 2.2 : Connecter l'utilisateur

Si les informations de connexion sont correctes, vous allez devoir connecter l'utilisateur.

Pour connecter l'utilisateur, vous allez stocker son id et son rôle dans deux variables de session.

Une fois l'utilisateur connecté, redirigez-le vers sa page de profil.

Étape 3 : Sécuriser l'administration

Les routes de notre espace d'administration ne devraient être accessibles que pour des utilisateurs qui ont le rôle ADMIN.

Dans votre UserController, pour les pages de l'admin, faites en sorte de vérifier si un utilisateur est connecté et s'il a le rôle ADMIN. Si ça n'est pas le cas, redirigez-le vers la page de connexion.

Étape 4 : Sécuriser la page de profil

La page de profil ne peut être accessible qu'à un utilisateur connecté, quel que soit son rôle.

Dans votre UserController, pour la page de profil, faites en sorte de vérifier si un utilisateur est connecté. Si ça n'est pas le cas, redirigez-le vers la page de connexion.

Étape 5 : Lister les utilisateurs dans l'administration

Dans la page de liste des utilisateurs de l'espace d'administration, faites en sorte de dynamiser la liste des utilisateurs pour qu'elle affiche les informations de la base de données.

Étape 6 : Afficher un utilisateur dans l'administration

Dans la page de détail d'un utilisateur de l'espace d'administration, faites en sorte de dynamiser les informations de l'utilisateur avec les informations de la base de données.

Étape 7 : Création d'utilisateur dans l'administration

Dans la route de création d'un utilisateur, faites en sorte de traiter le formulaire quand il est soumis pour créer un nouvel utilisateur dans la base de données.

Étape 8 : Modification d'utilisateur dans l'administration

Dans la route de modification d'un utilisateur, faites en sorte de traiter le formulaire quand il est soumis pour modifier l'utilisateur dans la base de données.

Faites également en sorte de préremplir le formulaire avec les informations de l'utilisateur.

Étape 9 : Suppression d'utilisateur dans l'administration

Dans la route de suppression d'un utilisateur, faites en sorte de supprimer l'utilisateur dans la base de données.

25 November 2025