From 8b094379ca40501906a7986f0224ca2640db63c1 Mon Sep 17 00:00:00 2001 From: Yasder5 <102179445+Yasder5@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:57:28 +0100 Subject: [PATCH] ajout quelque commentaire --- controllers/AdminCtrl.php | 4 +++- controllers/MotherCtrl.php | 5 ++++- controllers/PageCtrl.php | 2 +- controllers/ProjectCtrl.php | 3 --- controllers/UserCtrl.php | 8 ++++++-- models/UserModel.php | 33 ++++++++++++++++++++++++++++++++- 6 files changed, 46 insertions(+), 9 deletions(-) diff --git a/controllers/AdminCtrl.php b/controllers/AdminCtrl.php index b88ebae..88896dc 100644 --- a/controllers/AdminCtrl.php +++ b/controllers/AdminCtrl.php @@ -15,7 +15,9 @@ */ class AdminCtrl extends MotherCtrl{ - + /** + * Page Admin + */ public function admin(){ if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){ diff --git a/controllers/MotherCtrl.php b/controllers/MotherCtrl.php index a08395f..bea90b2 100644 --- a/controllers/MotherCtrl.php +++ b/controllers/MotherCtrl.php @@ -4,7 +4,7 @@ use Smarty\Smarty; /** - * Le controller de la partie accessible uniquement par l'admin + * Controller Mère qui permet de gèrer l'affichage des pages * @author Yasser */ @@ -14,6 +14,9 @@ /** * Méthode d'affichage des pages + * @param string $strView Le fichier a afficher + * @param bool $boolDisplay Booléen pour afficher web ou mail + * @return page|object affiche la page ou retourne l'objet pour le mail */ protected function _display($strView, bool $boolDisplay = true){ diff --git a/controllers/PageCtrl.php b/controllers/PageCtrl.php index 9fb89e0..248435d 100644 --- a/controllers/PageCtrl.php +++ b/controllers/PageCtrl.php @@ -4,7 +4,7 @@ /** - * Le controller de la page d'aide utilisateur + * Le controller des pages annexes * @author Laura & Besnik */ diff --git a/controllers/ProjectCtrl.php b/controllers/ProjectCtrl.php index b3dd0d1..6cb408c 100644 --- a/controllers/ProjectCtrl.php +++ b/controllers/ProjectCtrl.php @@ -38,15 +38,12 @@ $hash_a_verifier = hash('sha256', $token_du_cookie); $objUserModel = new UserModel; - // 2. On cherche le jeton dans TA table "tokens" (avec token_user_id) $row = $objUserModel->getTokenUser($hash_a_verifier); if ($row) { - // 3. Jeton trouvé ! On récupère les infos de l'utilisateur $user = $objUserModel->findUserById($row['token_user_id']); if ($user) { - // 4. On recrée la session comme lors d'un login normal $_SESSION['user'] = $user; } } diff --git a/controllers/UserCtrl.php b/controllers/UserCtrl.php index 13dd6a6..c1f288a 100644 --- a/controllers/UserCtrl.php +++ b/controllers/UserCtrl.php @@ -14,7 +14,9 @@ */ class UserCtrl extends MotherCtrl { - + /** + * Page Login + */ public function login(){ $strMail = $_POST['user_mail']??""; @@ -56,7 +58,9 @@ class UserCtrl extends MotherCtrl { } - + /** + * Fonction pour ce déconnecter + */ public function logout(){ if (isset($_COOKIE['remember_me'])) { diff --git a/models/UserModel.php b/models/UserModel.php index 4513f31..3563238 100644 --- a/models/UserModel.php +++ b/models/UserModel.php @@ -73,6 +73,12 @@ return $rqPrep->execute(); } + /** + * Méthode pour sauvegarder l'utilisateur lorsqu'il veut être souvenue + * @param int $userId l'id de l'utilisateur a se rappeler + * @param string $token Token hashé unique lié à l'utilisateur à se rappeler + * @return bool Est-ce que la requête s'est bien passée + */ public function remember(int $userId, string $token):bool{ $strRq = "INSERT INTO tokens (token_user_id, token_hash, token_created_at, token_expire_at) VALUES (:id, :token, NOW(), :exp)"; $rqPrep = $this->_db->prepare($strRq); @@ -84,6 +90,11 @@ return $rqPrep->execute(); } + /** + * Méthode pour récupperer l'utilisateur par rapport au cookie enregistrer + * @param string $hash Token hashé unique lié à l'utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ public function getTokenUser(string $hash){ $strRq = $this->_db->prepare("SELECT token_user_id FROM tokens WHERE token_hash = :hash AND token_expire_at > NOW()"); @@ -91,12 +102,22 @@ return $strRq->fetch(); } - + /** + * Méthode pour supprimer le token lors de la déconnexion + * @param string $hash Token hashé unique lié à l'utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ public function deleteToken(string $hash){ $strRq = $this->_db->prepare("DELETE FROM tokens WHERE token_hash = :hash"); return $strRq->execute(['hash' => $hash]); } + + /** + * Méthode pour mettre a jour l'utilisateur + * @param object $objUser L'objet user a mettre à jour + * @return bool Est-ce que la requête s'est bien passée + */ public function update(object $objUser):bool{ $strRq = "UPDATE users SET user_name = :name, @@ -194,6 +215,11 @@ return $prep->fetch(); } + /** + * Récupère les informations d'un utilisateur par son ID + * @param string $strPseudo Pseudo de l'utilisateur + * @return array Tableau associatif (ou false si pas trouvé) + */ public function findUserByPseudo(string $strPseudo): array|bool { $strRq = "SELECT user_id,user_image, user_status ,user_name, user_firstname, user_pseudo, user_mail, user_phone, user_work, user_location, user_description, authorisation_name @@ -207,6 +233,11 @@ return $prep->fetch(); } + /** + * Verifie sur le pseudo entré n'est pas déjà utilisé + * @param string $pseudo Pseudo a verifié + * @return array Tableau associatif (ou false si pas trouvé) + */ public function pseudoExists(string $pseudo): bool{ $rq = $this->_db->prepare("SELECT 1 FROM users WHERE user_pseudo = :pseudo LIMIT 1");