From a3f5331abbc77694dbfbce62b80542bb1f07da84 Mon Sep 17 00:00:00 2001 From: "jade.van_brabandt" Date: Tue, 21 Nov 2023 15:46:06 +0100 Subject: [PATCH] feat : little verification --- .../ControllerAdminAdministrators.php | 67 ++++++++++++------- Website/gateways/GatewayAdministrator.php | 13 ++++ Website/models/ModelAdministrator.php | 5 ++ 3 files changed, 60 insertions(+), 25 deletions(-) diff --git a/Website/controllers/ControllerAdminAdministrators.php b/Website/controllers/ControllerAdminAdministrators.php index cc7bcf0..5f61fe3 100644 --- a/Website/controllers/ControllerAdminAdministrators.php +++ b/Website/controllers/ControllerAdminAdministrators.php @@ -19,19 +19,20 @@ class ControllerAdminAdministrators session_start(); try { - if($_SESSION["idAdminConnected"] != null){ - $this->twig =$twig; + if ($_SESSION["idAdminConnected"] != null) { + $this->twig = $twig; $this->vues = $vues; - + $this->mdAdministrator = new ModelAdministrator(); - + $administrators = $this->mdAdministrator->getAdministrators(); - + echo $twig->render($vues["adminAdministrators"], [ 'administrators' => $administrators, + 'error' => $_SESSION["error"], ]); - } - else { + $_SESSION["error"] = null; + } else { header("Location:/loginAdmin"); } } catch (PDOException $e) { @@ -41,27 +42,42 @@ class ControllerAdminAdministrators } } - function delete($param) { + function delete($param) + { $this->mdAdministrator->deleteAdministratorByID($param["id"]); header("Location:/admin/administrators"); } - function add($param) { - - $username = $_POST['username']; - $password = $_POST['password']; - - $Admin = [ - 'username' => $username, - 'password' => $password, - ]; - - $this->mdAdministrator->addAdministrator($Admin); - - header("Location:/admin/administrators"); + function add($param) + { + var_dump($_SERVER['REQUEST_METHOD'] !== 'POST'); + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + $_SESSION["error"]="Méthode non autorisée."; + } else { + $username = $_POST['username']; + $password = $_POST['password']; + $username = trim($_POST['username']); + $password = trim($_POST['password']); + var_dump(!isset($_POST['username']) || !isset($_POST['password']) || empty($username) || empty($password)); + if (!isset($username) || !isset($password) || empty($username) || empty($password)) { + $_SESSION["error"]="Veuillez remplir tous les champs."; + } else { + $Admin = [ + 'username' => $username, + 'password' => $password, + ]; + if ($this->mdAdministrator->verifyAdministratorByName($Admin) != null) { + $_SESSION["error"]="Cet admin existe déjà."; + } else { + $this->mdAdministrator->addAdministrator($Admin); + header("Location:/admin/administrators"); + } + } + } } - function updatemodal($param) { + function updatemodal($param) + { $administrator = $this->mdAdministrator->getAdministratorByID($param["id"]); @@ -70,7 +86,8 @@ class ControllerAdminAdministrators ]); } - function update($param) { + function update($param) + { $id = $_POST['id']; $username = $_POST['username']; @@ -81,8 +98,8 @@ class ControllerAdminAdministrators 'password' => $password, ]; - $this->mdAdministrator->updateAdministrator($id,$Admin); + $this->mdAdministrator->updateAdministrator($id, $Admin); header("Location:/admin/administrators"); } -} \ No newline at end of file +} diff --git a/Website/gateways/GatewayAdministrator.php b/Website/gateways/GatewayAdministrator.php index aa40056..ebc749f 100755 --- a/Website/gateways/GatewayAdministrator.php +++ b/Website/gateways/GatewayAdministrator.php @@ -87,6 +87,19 @@ class GatewayAdministrator ); $results = $this->con->getResults(); + return $results[0]; + } + public function verifyAdministratorByName($administrator) + { + $query = "SELECT administrators.id FROM administrators WHERE username = :username"; + $this->con->executeQuery( + $query, + array( + ':username' => array($administrator['username'], PDO::PARAM_STR), + ) + ); + $results = $this->con->getResults(); + return $results[0]; } } diff --git a/Website/models/ModelAdministrator.php b/Website/models/ModelAdministrator.php index 9d0b823..b0e2051 100644 --- a/Website/models/ModelAdministrator.php +++ b/Website/models/ModelAdministrator.php @@ -52,4 +52,9 @@ class ModelAdministrator $administratorsId = $this->gwAdministrator->verifyAdministrator($Administrator); return $administratorsId; } + public function verifyAdministratorByName($Administrator) + { + $administratorsId = $this->gwAdministrator->verifyAdministratorByName($Administrator); + return $administratorsId; + } }