From bf9b41fd1712f4b4ea24a02ce4bb723babd059ed Mon Sep 17 00:00:00 2001 From: "gwenael.planchon" Date: Mon, 20 Nov 2023 11:28:53 +0100 Subject: [PATCH] enlever l'autre con et ajouter MdlUser --- project/src/controller/FrontController.php | 9 ++++--- project/src/db.sql | 6 ++++- project/src/model/gateways/UserGateway.php | 8 +++--- project/src/model/mdl/MdlUser.php | 30 ++++++++++++++++++++++ 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 project/src/model/mdl/MdlUser.php diff --git a/project/src/controller/FrontController.php b/project/src/controller/FrontController.php index d1e2fd0..f5db345 100644 --- a/project/src/controller/FrontController.php +++ b/project/src/controller/FrontController.php @@ -4,6 +4,7 @@ namespace controller; use config\Validation; use model\Connection; use model\LoginException; +use model\MdlUser; use model\UserGateway; class FrontController @@ -12,9 +13,7 @@ class FrontController public function __construct() { global $twig, $router, $config; - - $this->con = new Connection($config["db"]["dsn"], $config["db"]["login"], $config["db"]["mdp"]); - + $router->map('GET|POST', '/', 'null'); $router->map('GET|POST', '/join', 'join'); $router->map('GET|POST', '/create', 'create'); @@ -75,7 +74,8 @@ class FrontController echo $twig->render('login.html'); elseif(isset($_REQUEST['login'])) { Validation::valUserLogin($_REQUEST['login'], $dVueErreur); - $ug = new UserGateway($this->con); #TODO: utiliser le modele plutot que la gw puis supprimer attribut this->$con + //$ug = new UserGateway($this->con); #TODO: utiliser le modele plutot que la gw puis supprimer attribut this->$con + $ug = new MdlUser(); if($ug->login($_REQUEST['login'], $_REQUEST['password'])) { $_SESSION['pseudo'] = $_REQUEST['login']; header("Location: ."); @@ -100,6 +100,7 @@ class FrontController } } catch (\PDOException $e) { $dVueErreur[] = 'Erreur avec la base de données !'; + $dVueErreur[] = 'Erreur avec la base de données !'.$e; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); } catch (LoginException $e) { echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); diff --git a/project/src/db.sql b/project/src/db.sql index 3e57741..19148d6 100644 --- a/project/src/db.sql +++ b/project/src/db.sql @@ -171,4 +171,8 @@ INSERT INTO Thematique(libelle) VALUES ('Nucléaire'),('Mathématiques'); INSERT INTO Scientifique(nom, prenom, photo, dateNaissance, descriptif, ratioTrouvee, idThematique, idDifficulte, idSexe) VALUES ('nomToto', 'prenomToto', '', CURRENT_DATE, 'desc', 0, 1, 1, 1), - ('nomTiti', 'prenomTiti', '', CURRENT_DATE, 'desc', 0, 2, 2, 2); \ No newline at end of file + ('nomTiti', 'prenomTiti', '', CURRENT_DATE, 'desc', 0, 2, 2, 2); + + +INSERT INTO Joueur(id,pseudo) VALUES (1337, 'moi, le meilleur admin du monde'); +INSERT INTO Utilisateur(idJoueur,email,motDePasse) VALUES (1337, 'admin','admin'); diff --git a/project/src/model/gateways/UserGateway.php b/project/src/model/gateways/UserGateway.php index 43aecf5..037ef51 100644 --- a/project/src/model/gateways/UserGateway.php +++ b/project/src/model/gateways/UserGateway.php @@ -20,7 +20,7 @@ class UserGateway $result = $this->con->getOneResult(); - if (!empty($result) && password_hash($motDePasse, 'md5') == $result['motDePasse']) { + if (!empty($result) && password_hash($motDePasse, PASSWORD_DEFAULT) == $result['motDePasse']) { return true; } return false; @@ -30,7 +30,7 @@ class UserGateway $sql = "INSERT INTO utilisateur (email, motDePasse) VALUES (:email, :motDePasse)"; $stmt = $this->con->prepare($sql); $stmt->bindValue(':email', $email); - $stmt->bindValue(':motDePasse', password_hash($motDePasse, 'md5')); + $stmt->bindValue(':motDePasse', password_hash($motDePasse, PASSWORD_DEFAULT)); $stmt->execute(); } public function deleteUser(int $id): void @@ -46,7 +46,7 @@ class UserGateway $stmt = $this->con->prepare($sql); $stmt->bindValue(':id', $id); $stmt->bindValue(':email', $email); - $stmt->bindValue(':motDePasse', password_hash($motDePasse, 'md5')); + $stmt->bindValue(':motDePasse', password_hash($motDePasse, PASSWORD_DEFAULT)); $stmt->execute(); } public function getUser(int $id): User @@ -93,7 +93,7 @@ class UserGateway $sql = "SELECT * FROM utilisateur WHERE email=:email AND motDePasse=:motDePasse"; $stmt = $this->con->prepare($sql); $stmt->bindValue(':email', $email); - $stmt->bindValue(':motDePasse', password_hash($motDePasse, 'md5')); + $stmt->bindValue(':motDePasse', password_hash($motDePasse, PASSWORD_DEFAULT)); $stmt->execute(); $result = $stmt->fetch(); return new User($result['id'], $result['email'], $result['motDePasse']); diff --git a/project/src/model/mdl/MdlUser.php b/project/src/model/mdl/MdlUser.php new file mode 100644 index 0000000..7693ed5 --- /dev/null +++ b/project/src/model/mdl/MdlUser.php @@ -0,0 +1,30 @@ +gw = new UserGateway($this->con); + } + public function login(string $username, string $password): bool{ + return $this->gw->login($username, $password); + } +/* + public function setPseudo(int $id, string $pseudo): User{ + $this->gw->setPseudo($id, $pseudo); + return $this->getFromId($id); + } + + public function insertInvite(string $pseudo, string $idSession): User{ + $id = $this->gw->insertInvite($pseudo, $idSession); + return $this->getFromId($id); + } + + public function getFromId(int $id): User{ + $row = $this->gw->getFromId($id); + return new Invite($row['idjoueur'], $row['pseudo'], $row['idsession']); + }*/ +} \ No newline at end of file