diff --git a/WEB/Config/Connection.php b/WEB/Config/Connection.php index be9b541f..c60e0b9f 100644 --- a/WEB/Config/Connection.php +++ b/WEB/Config/Connection.php @@ -56,11 +56,4 @@ class Connection extends SQLite3 else return $multiArray; } -} - -// 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 97% rename from WEB/Model/Model.php rename to WEB/Model/VisitorModel.php index 29c1d764..cfa123a4 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/View/src/pages/Main.php b/WEB/View/src/pages/Main.php index 2355ce52..5a5566ff 100644 --- a/WEB/View/src/pages/Main.php +++ b/WEB/View/src/pages/Main.php @@ -39,7 +39,7 @@ class="mb-3 text-uppercase d-flex justify-content-center align-items-center" style="width: 260px; height: 50px"