From 92b02d6ac541b8dfafd106279cae666808925c83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Garnier?= Date: Mon, 5 Dec 2022 15:30:16 +0100 Subject: [PATCH] Mise en place du FrontController --- WEB/Config/Connection.php | 9 +-- WEB/Controller/FrontController.php | 31 +++++++++-- WEB/Controller/UserController.php | 14 ++--- WEB/Controller/VisitorController.php | 54 ++++++++++++++++++ WEB/Model/UserModel.php | 64 ++++++++++++++++++++++ WEB/Model/{Model.php => VisitorModel.php} | 7 +-- WEB/Model/scripted.db | Bin 53248 -> 53248 bytes WEB/View/src/pages/Main.php | 2 +- WEB/{Model => }/bd.sql | 0 WEB/index.php | 6 +- 10 files changed, 156 insertions(+), 31 deletions(-) create mode 100644 WEB/Controller/VisitorController.php create mode 100644 WEB/Model/UserModel.php rename WEB/Model/{Model.php => VisitorModel.php} (96%) rename WEB/{Model => }/bd.sql (100%) diff --git a/WEB/Config/Connection.php b/WEB/Config/Connection.php index d8ad3faf..da3a86e8 100644 --- a/WEB/Config/Connection.php +++ b/WEB/Config/Connection.php @@ -52,11 +52,4 @@ class Connection extends SQLite3 return $tmp; } } -} - -// class Connection extends SQLite3{ -// function __construct() -// { -// $this->open("./Model/scripted.db"); -// } -// } \ No newline at end of file +} \ No newline at end of file diff --git a/WEB/Controller/FrontController.php b/WEB/Controller/FrontController.php index ebe2bc55..36691fae 100644 --- a/WEB/Controller/FrontController.php +++ b/WEB/Controller/FrontController.php @@ -3,15 +3,34 @@ class FrontController { function __construct() { - global $rep, $vues, $error; - session_start(); - // $role=$_SESSION['role']; - // $action=$_REQUEST['action']; try { - new UserController(); + global $error, $view, $rep; + session_start(); + // Check role permissions + if (isset($_SESSION['role'])) { + $role = $_SESSION['role']; + } else { + $role = "visitor"; + } + + // Check if action exists + $action = $_REQUEST['action']; + if ($role == "user") { + if ($action == NULL) { + new UserController(); + } + else if (method_exists('UserModel', $action) == false) { + $error = "Action non valide " . $action; + require($rep . $view['erreur']); + } else { + new UserController(); + } + } else { + new VisitorController(); + } } catch (Exception $e) { $error = $e->getMessage(); - require ($rep . $vues['erreur']); + require($rep . $view['erreur']); } } } \ No newline at end of file diff --git a/WEB/Controller/UserController.php b/WEB/Controller/UserController.php index 9ac080a6..c1676fa4 100644 --- a/WEB/Controller/UserController.php +++ b/WEB/Controller/UserController.php @@ -1,7 +1,5 @@ goToHome(); break; - case "goToLogin": - $model->goToLogin(); - break; - case "goToSignUp": - $model->goToSignUp(); - break; case "goToEnigme": $model->goToEnigme(); break; case "goToQueue": $model->goToQueue(); break; + default: + $error = "Action non valide"; + require($rep . $vues['erreur']); + break; } } catch (PDOException $e) { $error = $e->getMessage(); diff --git a/WEB/Controller/VisitorController.php b/WEB/Controller/VisitorController.php new file mode 100644 index 00000000..a171c593 --- /dev/null +++ b/WEB/Controller/VisitorController.php @@ -0,0 +1,54 @@ +goToHome(); + break; + case "signUp": + $model->signUp(); + break; + case "login": + $model->login(); + break; + case "goToPresentation": + $model->goToPresentation(); + break; + case "goToHome": + $model->goToHome(); + break; + case "goToLogin": + $model->goToLogin(); + break; + case "goToSignUp": + $model->goToSignUp(); + break; + case "goToEnigme": + $model->goToEnigme(); + break; + case "goToQueue": + $model->goToQueue(); + break; + default: + $error = "Action non valide"; + require($rep . $vues['erreur']); + break; + } + } catch (PDOException $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } catch (Exception $e2) { + $error = $e2->getMessage(); + require($rep . $vues['erreur']); + } + } +} \ No newline at end of file diff --git a/WEB/Model/UserModel.php b/WEB/Model/UserModel.php new file mode 100644 index 00000000..db2e308c --- /dev/null +++ b/WEB/Model/UserModel.php @@ -0,0 +1,64 @@ +enigme_gateway = new EnigmeGateway(); + $this->partie_gateway = new PartieGateway(); + $this->utilisateur_gateway = new UtilisateurGateway(); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $view['erreur']); + } + } + + public function goToPresentation() + { + global $rep, $vues, $error; + try { + require($rep . $vues['presentation']); + } catch (Exception $e) { + $error = "Erreur Inconnue"; + require($rep . $vues['erreur']); + } + } + + public function goToHome() + { + global $rep, $vues, $error; + try { + require($rep . $vues['main']); + } catch (Exception $e) { + $error = "404"; + require($rep . $vues['erreur']); + } + } + public function goToEnigme() + { + global $rep, $vues, $error; + try { + require($rep . $vues['enigme']); + } catch (Exception $e) { + $error = "404"; + require($rep . $vues['erreur']); + } + } + + public function goToQueue() + { + global $rep, $vues, $error; + try { + require($rep . $vues['Queue']); + } catch (Exception $e) { + $error = "404"; + require($rep . $vues['erreur']); + } + } +} \ No newline at end of file diff --git a/WEB/Model/Model.php b/WEB/Model/VisitorModel.php similarity index 96% rename from WEB/Model/Model.php rename to WEB/Model/VisitorModel.php index a58a4cc4..f975ed46 100644 --- a/WEB/Model/Model.php +++ b/WEB/Model/VisitorModel.php @@ -1,5 +1,5 @@ utilisateur_gateway->insert($Utilisateur); - $_SESSION['connected'] = 'true'; - $_SESSION['role'] = 'utilisateur'; + $_SESSION['role'] = 'user'; require($rep . $vues['main']); } catch (PDOException $e) { $error = "Erreur de connexion à la base de données."; @@ -73,7 +72,7 @@ class Model if ($estAdmin == true) { $_SESSION['role'] = "admin"; } else { - $_SESSION['role'] = "utilisateur"; + $_SESSION['role'] = "user"; } $_SESSION['connected'] = 'true'; diff --git a/WEB/Model/scripted.db b/WEB/Model/scripted.db index 3ab47f7796e837594fd90fa0cfdd45b2e814a8f4..ce905aeb001b4057c8b7ba77e8381eb78ce603b7 100644 GIT binary patch delta 150 zcmZozz}&Ead4e>f$V3@uRuKlhWQL6?%lKLNo%pIY3o7LBO|FtV!NS16kTSVWPTSO| z(kCi6+$_?gsw6M8%E>I)+bKQAKc&Q1zo0xc$IHXTJ1x^Q*~QR3Bg#9#+&DllCr>YU z@-q2U<~RJ0Hwzjp<)6G+Urrimp0rf&_o$$Rv`vG`n6cU+e?&X%0oLS~p>FckT5|C(O z;GGs~VHsqR=o{)%TH;X@loXa~Xy#$*k_$9BNgQbM