diff --git a/dbAlica-3.sql b/dbAlica-3.sql new file mode 100644 index 0000000..5bad779 --- /dev/null +++ b/dbAlica-3.sql @@ -0,0 +1,372 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Hôte : localhost:8889 +-- Généré le : lun. 20 nov. 2023 à 20:05 +-- Version du serveur : 5.7.39 +-- Version de PHP : 8.2.0 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Base de données : `dbAlica` +-- + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Alumni` +-- + +CREATE TABLE `Alumni` ( + `id` int(11) NOT NULL, + `mail` varchar(128) NOT NULL, + `mdp` varchar(256) NOT NULL, + `role` varchar(16) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `Alumni` +-- + +INSERT INTO `Alumni` (`id`, `mail`, `mdp`, `role`) VALUES +(1, 'test', 'test', 'admin'), +(4, 'Admin@alica.com', '$2y$10$f2z.qWTtGhp.nZo0zBlw8Og9GpcQYcBOTIfqAj3UP2MEiN5uXS1Ue', 'Admin'), +(5, 'john@doe', '$2y$10$oOMH01Zxkz4yQPVs44fkHODMc78m8eeIOaSMF84K1w4ikPyUAiwwy', 'Membre'), +(6, 'jack@doe', '$2y$10$sFeUX9.evOansuqwj4nFuOLy9n3j6tkAFHmsL1kTDuUxhgF6WZRZy', 'Membre'), +(7, 'test@gmail.com', '$2y$10$41F6OQz9V1cr2D1rYX9np.5fTKe68dYrJlLpZf7t5G9c8g2mgOF9K', 'Membre'), +(8, 'admin@test', '$2y$10$mHKhDhpN7.Z1UyvE3..ZIuGPbjtmUa9QDhmuQyU1h68d/2z25DUDK', 'Admin'), +(9, 'membre@test', '$2y$10$hVS.BcHq.b/oneN0KiJI3u6CXGeb2UXRw5mJtvZByJG1./mIG4QbK', 'Membre'), +(10, 'test@e', '$2y$10$K3LBNsukXWvBqsbEid5Px.PnNQmomNa0tlnNvFlxDxRYdSbfOWdcK', 'Membre'), +(11, 'emma.dupont@email.com', '$2y$10$eg7ARpvdTqnpJ1tMi.AhcufFZtBQxkhnE8GF1/z4RRrTg3C1wpCsC', 'Membre'), +(12, 'lucas.martin@email.com', '$2y$10$yk7/MCHif6niCjqWrFxA2u1C69ThVb9tpduyTZtcDjnW.V.gM51Iu', 'Membre'), +(13, 'chloe.bernard@mail', '$2y$10$p0BjmKiuFbd3zBzBo6sWJ.tZi./2J7c3MZ9unCn/OkW6LBBvnC.FC', 'Membre'), +(14, 'ines.leroy@email.com', '$2y$10$QDoHq2B7m6WseAPe6kH6MuoaCREBWqChO95NxUVMrZDH1aShHD7zW', 'Membre'), +(15, 'te@te', '$2y$10$.kM.SFMvZnDEGuE8rxclc.UaJbKYesqzNNkE5VdE7NAPEwWOTS4u6', 'Membre'), +(16, 'lea.simon@email.com', '$2y$10$AckHtFDM3C.O.ACQlqh5FuVqSr3bB2.IjcPmdrrM/fYRYU6lU6OdW', 'Membre'), +(17, 'gabriel.michel@email.com', '$2y$10$bNoO9pNylyCL2hznrZ7OyO7aWVJUrZieda2uwnYo/Ly8TB7Nl7fLS', 'Membre'), +(18, 'Sarah@email', '$2y$10$50o/3cFzapPB90apopD5b.tWrRxCG0sYOni6TinI41cwHCzYFiUFO', 'Membre'), +(19, 'raphael.garcia@email.fr', '$2y$10$m2dHfABuizTRBGymKfO60eyzo13BPTSSH/EdEhXcDkauzuRuk7HR.', 'Membre'), +(20, 'Alice@a', '$2y$10$atRfojz7W0mQzv9l0IgRhOF5WWn7FjTRZtSbZkzQveYdInMsy5RrS', 'Membre'), +(21, 'maxime.pichon@email.com', '$2y$10$sA3N6D01ATFdCKqJ6fflNe484KMKejFIfaTYHGOH9AoPHOnRmSvi2', 'Membre'), +(22, 'zoe.Gauthier@gmail.com', '$2y$10$bVaPrdlcYOHcclq0OjZUTOwoLkmMXLw9Ww6OTSDnhFAujDL4nqBqG', 'Membre'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Article` +-- + +CREATE TABLE `Article` ( + `id` int(11) NOT NULL, + `auteur` int(11) NOT NULL, + `Titre` varchar(64) NOT NULL, + `sousTitre` varchar(64) NOT NULL, + `description` varchar(1024) NOT NULL, + `image` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Evenement` +-- + +CREATE TABLE `Evenement` ( + `id` int(11) NOT NULL, + `organisateur` int(11) NOT NULL, + `titre` varchar(64) NOT NULL, + `description` varchar(512) NOT NULL, + `image` varchar(256) NOT NULL, + `date` date NOT NULL, + `nbPlaceMax` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `Evenement` +-- + +INSERT INTO `Evenement` (`id`, `organisateur`, `titre`, `description`, `image`, `date`, `nbPlaceMax`) VALUES +(1, 1, 'Laser Game', 'Evement laser game avec tous les membres du réseau ALICA, vous êtes la bienvenue..', '18044Laser Game PBOB9302.jpg', '2023-11-18', 20), +(2, 1, 'Rencontre Annuelle des Anciens d\'Alica', 'Un rassemblement annuel pour tous les anciens étudiants, avec des discours inspirants, des ateliers de réseautage et un dîner de gala\r\nLieu : Centre de conférence de l\'IUT d’Aubière', '16494Bandeau CreerAsso.jpg', '2023-11-24', 30); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Experience` +-- + +CREATE TABLE `Experience` ( + `id` int(11) NOT NULL, + `profil` int(11) NOT NULL, + `intitule` varchar(256) NOT NULL, + `dateDebut` date NOT NULL, + `dateFin` date NOT NULL, + `nomEntreprise` varchar(64) NOT NULL, + `currentJob` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Formation` +-- + +CREATE TABLE `Formation` ( + `id` int(11) NOT NULL, + `profil` int(11) NOT NULL, + `nom` varchar(64) NOT NULL, + `ville` varchar(32) NOT NULL, + `dateDeb` date NOT NULL, + `dateFin` date NOT NULL, + `currentFormation` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Image` +-- + +CREATE TABLE `Image` ( + `id` int(5) NOT NULL, + `nom` varchar(50) NOT NULL, + `taille` varchar(25) NOT NULL, + `type` varchar(25) NOT NULL, + `blob` longblob NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Offre` +-- + +CREATE TABLE `Offre` ( + `id` int(11) NOT NULL, + `offreur` int(11) NOT NULL, + `titre` varchar(128) NOT NULL, + `description` varchar(1024) NOT NULL, + `image` varchar(100) NOT NULL, + `logo` varchar(100) NOT NULL, + `typeContrat` varchar(16) NOT NULL, + `ville` varchar(64) NOT NULL, + `entreprise` varchar(64) NOT NULL, + `descriptifPoste` varchar(2028) NOT NULL, + `profil` varchar(2028) NOT NULL, + `experience` varchar(512) NOT NULL, + `niveauEtudes` varchar(16) NOT NULL, + `mailContact` varchar(128) NOT NULL, + `numero` varchar(12) NOT NULL, + `websiteURL` varchar(256) NOT NULL, + `remote` tinyint(1) NOT NULL, + `date` date NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Participer` +-- + +CREATE TABLE `Participer` ( + `alumni` int(11) NOT NULL, + `evenement` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Structure de la table `Profil` +-- + +CREATE TABLE `Profil` ( + `id` int(11) NOT NULL, + `alumni` int(11) NOT NULL, + `email` varchar(128) NOT NULL, + `cv` varchar(256) DEFAULT NULL, + `nom` varchar(64) NOT NULL, + `prenom` varchar(32) NOT NULL, + `linkedinURL` varchar(256) DEFAULT NULL, + `githubURL` varchar(256) DEFAULT NULL, + `portfolioURL` varchar(256) DEFAULT NULL, + `image` varchar(100) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Déchargement des données de la table `Profil` +-- + +INSERT INTO `Profil` (`id`, `alumni`, `email`, `cv`, `nom`, `prenom`, `linkedinURL`, `githubURL`, `portfolioURL`, `image`) VALUES +(4, 4, 'Admin@alica.com', NULL, 'TUAILLON', 'Leo', NULL, NULL, NULL, '19879.png'), +(5, 5, 'john@doe', NULL, 'Doe', 'John', NULL, NULL, NULL, '2.jpg'), +(6, 6, 'jack@doe', NULL, 'Doe', 'Jack', NULL, NULL, NULL, NULL), +(7, 7, 'test@gmail.com', NULL, 'test', 'test', NULL, NULL, NULL, NULL), +(8, 8, 'admin@test', NULL, 'Admin', 'CompteTest', NULL, NULL, NULL, '1.png'), +(9, 9, 'membre@test', NULL, 'Membre', 'compteTest', NULL, NULL, NULL, '3.jpg'), +(10, 10, 'test@e', NULL, 'nom', 'prénom', NULL, NULL, NULL, NULL), +(11, 11, 'emma.dupont@email.com', NULL, 'Dupont', 'Emma', NULL, NULL, NULL, NULL), +(12, 12, 'lucas.martin@email.com', NULL, 'Martin', 'Lucas', NULL, NULL, NULL, NULL), +(13, 13, 'chloe.bernard@mail', NULL, 'Bernard', 'Chloé', NULL, NULL, NULL, '1.png'), +(14, 14, 'ines.leroy@email.com', NULL, 'Leroy', 'Ines', NULL, NULL, NULL, NULL), +(15, 15, 'te@te', NULL, 'Moreau', 'Alexandre', NULL, NULL, NULL, NULL), +(16, 16, 'lea.simon@email.com', NULL, 'Simon', 'Léa', NULL, NULL, NULL, '3.jpg'), +(17, 17, 'gabriel.michel@email.com', NULL, 'Michel', 'Gabriel', NULL, NULL, NULL, NULL), +(18, 18, 'Sarah@email', NULL, 'Lefevre', 'Sarah', NULL, NULL, NULL, NULL), +(19, 19, 'raphael.garcia@email.fr', NULL, 'Garcia', 'Raphaël', NULL, NULL, NULL, NULL), +(20, 20, 'Alice@a', NULL, 'Alice', 'Alice', NULL, NULL, NULL, '2.jpg'), +(21, 21, 'maxime.pichon@email.com', NULL, 'Pichon', 'Maxime', NULL, NULL, NULL, NULL), +(22, 22, 'zoe.Gauthier@gmail.com', NULL, 'Gauthier', 'zoé', NULL, NULL, NULL, '3.jpg'); + +-- +-- Index pour les tables déchargées +-- + +-- +-- Index pour la table `Alumni` +-- +ALTER TABLE `Alumni` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `mail` (`mail`); + +-- +-- Index pour la table `Article` +-- +ALTER TABLE `Article` + ADD PRIMARY KEY (`id`), + ADD KEY `image` (`image`), + ADD KEY `auteur` (`auteur`); + +-- +-- Index pour la table `Evenement` +-- +ALTER TABLE `Evenement` + ADD PRIMARY KEY (`id`), + ADD KEY `organisateur` (`organisateur`); + +-- +-- Index pour la table `Experience` +-- +ALTER TABLE `Experience` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `Formation` +-- +ALTER TABLE `Formation` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `Image` +-- +ALTER TABLE `Image` + ADD PRIMARY KEY (`id`); + +-- +-- Index pour la table `Offre` +-- +ALTER TABLE `Offre` + ADD PRIMARY KEY (`id`), + ADD KEY `offreur` (`offreur`); + +-- +-- Index pour la table `Profil` +-- +ALTER TABLE `Profil` + ADD PRIMARY KEY (`id`), + ADD KEY `alumni` (`alumni`); + +-- +-- AUTO_INCREMENT pour les tables déchargées +-- + +-- +-- AUTO_INCREMENT pour la table `Alumni` +-- +ALTER TABLE `Alumni` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=30; + +-- +-- AUTO_INCREMENT pour la table `Article` +-- +ALTER TABLE `Article` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Evenement` +-- +ALTER TABLE `Evenement` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- AUTO_INCREMENT pour la table `Experience` +-- +ALTER TABLE `Experience` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Formation` +-- +ALTER TABLE `Formation` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Image` +-- +ALTER TABLE `Image` + MODIFY `id` int(5) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT pour la table `Offre` +-- +ALTER TABLE `Offre` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT pour la table `Profil` +-- +ALTER TABLE `Profil` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=28; + +-- +-- Contraintes pour les tables déchargées +-- + +-- +-- Contraintes pour la table `Article` +-- +ALTER TABLE `Article` + ADD CONSTRAINT `article_ibfk_1` FOREIGN KEY (`image`) REFERENCES `Image` (`id`), + ADD CONSTRAINT `article_ibfk_2` FOREIGN KEY (`auteur`) REFERENCES `Alumni` (`id`); + +-- +-- Contraintes pour la table `Evenement` +-- +ALTER TABLE `Evenement` + ADD CONSTRAINT `evenement_ibfk_1` FOREIGN KEY (`organisateur`) REFERENCES `Alumni` (`id`); + +-- +-- Contraintes pour la table `Offre` +-- +ALTER TABLE `Offre` + ADD CONSTRAINT `offre_ibfk_1` FOREIGN KEY (`offreur`) REFERENCES `Alumni` (`id`); + +-- +-- Contraintes pour la table `Profil` +-- +ALTER TABLE `Profil` + ADD CONSTRAINT `fk_profil_alumni` FOREIGN KEY (`alumni`) REFERENCES `Alumni` (`id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/php/public/uploads/10246LOGO-CGI-1993-1998.svg.png b/php/public/uploads/10246LOGO-CGI-1993-1998.svg.png deleted file mode 100644 index b02459b..0000000 Binary files a/php/public/uploads/10246LOGO-CGI-1993-1998.svg.png and /dev/null differ diff --git a/php/public/uploads/11560Adidas 3D LOGO.jpg b/php/public/uploads/11560Adidas 3D LOGO.jpg deleted file mode 100644 index b3a36a5..0000000 Binary files a/php/public/uploads/11560Adidas 3D LOGO.jpg and /dev/null differ diff --git a/php/public/uploads/19879 .png b/php/public/uploads/19879 .png deleted file mode 100644 index 955bdb3..0000000 Binary files a/php/public/uploads/19879 .png and /dev/null differ diff --git a/php/src/controleur/AdminControleur.php b/php/src/controleur/AdminControleur.php index 5008df0..ae40f22 100755 --- a/php/src/controleur/AdminControleur.php +++ b/php/src/controleur/AdminControleur.php @@ -1,44 +1,36 @@ deleteAccount($profilId); + echo $twig->render('profil.html', []); + } catch (Exception $e) { + $dVueErreur[] = "Erreur lors de la suppression du compte"; + echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); + } } else { - $action = \App\config\Validation::nettoyerString($_REQUEST["action"]); + $dVueErreur[] = "ID du profil non spécifié."; + echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); } - switch ($action) { - case "supprimerCompte": - $this->supprimerCompte(); - break; - case "consulterSignalement": - $this->consulterSignalement(); - break; - case "creerEvenement": - $this->creerEvenement(); - break; - case "supprimerEvenement": - $this->supprimerEvenement(); - break; - case "supprimerOffre": - $this->supprimerOffre(); - break; - default: - parent::__construct(); - } - } - - protected function supprimerCompte() - { - //TODO } protected function consulterSignalement() @@ -54,7 +46,7 @@ class AdminControleur extends ModerateurControleur $img = ImageSaver::SaveImage('image'); if (!Validation::validerEvenement($_POST["titre"], $_POST["description"], $_POST["date"], $_POST["nbPlaceMax"], $img[1])) { - $mdl = new UtilisateurModele(); + $mdl = new AdminModele(); $mdl->ajouterEvenement($_POST["titre"], $_POST["description"], $_POST["date"], $_POST["nbPlaceMax"], $img[1]); $this->listerEvenement(); @@ -69,8 +61,8 @@ class AdminControleur extends ModerateurControleur public function supprimerEvenement(?array $params) { - $mdl = new UtilisateurModele(); - $mdl->deleteEvenement($params["id"]); + $mdl = new AdminModele(); + $mdl->deleteEvenement($params["id2"]); $this->listerEvenement(); } diff --git a/php/src/controleur/FrontControleur.php b/php/src/controleur/FrontControleur.php index ee0faad..30a358c 100755 --- a/php/src/controleur/FrontControleur.php +++ b/php/src/controleur/FrontControleur.php @@ -12,14 +12,19 @@ class FrontControleur { global $twig; session_start(); - //var_dump($_SESSION['utilisateur']); - - if ($_SESSION['utilisateur'] != NULL) { - // echo on y passe - $twig->addGlobal('nom', $_SESSION['utilisateur']->getNom()); - $twig->addGlobal('prenom', $_SESSION['utilisateur']->getPrenom()); - $twig->addGlobal('role', $_SESSION['utilisateur']->getRole()); - $twig->addGlobal('id', $_SESSION['utilisateur']->getId()); + + if(!isset($_SESSION['nom']) && !isset($_SESSION['prenom']) && !isset($_SESSION['role']) && !isset($_SESSION['id'])) + { + $_SESSION['nom'] = NULL; + $_SESSION['prenom'] = NULL; + $_SESSION['role'] = "guest"; + $_SESSION['id'] = NULL; + } + else{ + $twig->addGlobal('nom', $_SESSION['nom']); + $twig->addGlobal('prenom', $_SESSION['prenom']); + $twig->addGlobal('role', $_SESSION['role']); + $twig->addGlobal('id', $_SESSION['id']); } @@ -35,10 +40,14 @@ class FrontControleur $router->map('GET','/[a:action]/[i:id]?','UtilisateurControleur'); + $router->map('GET|POST', '/user/[a:action]?', 'MembreControleur'); $router->map('GET|POST', '/user/[i:id]/[a:action]?', 'MembreControleur'); + $router->map('GET|POST', '/admin/[i:id]/[a:action]?', 'AdminControleur'); + $router->map('GET|POST', '/admin/[i:id]/[a:action]/[i:id2]?', 'AdminControleur'); + $id = 0; $match = $router->match(); @@ -65,11 +74,7 @@ class FrontControleur try { if ($controller == "MembreControleur") { - - echo " on est passés ici"; - echo "role ".$_SESSION["utilisateur"]->getRole(); - - if ($_SESSION["utilisateur"]->getRole() != "Membre") { + if ($_SESSION["role"] != "Membre" && $_SESSION["role"] != "Admin") { echo $twig->render("connection.html",['msg' => 'Vous devez vous connecter pour effectuer cette action']); } @@ -79,20 +84,24 @@ class FrontControleur echo "controller : ".$controller; $controller = new $controller(); - } } if ($controller == "AdminControleur") { - $Alumni = $_SESSION["utilisateur"]; - if ($Alumni->getRole() != "Admin") { + if ($_SESSION["role"] != "Admin") { $dVueErreur = ["Erreur : Vous n'avez pas les privileges pour cette action"]; global $twig; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); return; } + else{ + $controller = "AdminControleur"; + $controller = $namespace . $controller; + $controller = new $controller(); + } } + if($controller == "UtilisateurControleur") { $controller = $namespace . $controller; @@ -104,9 +113,8 @@ class FrontControleur call_user_func(array($controller, $action), $match['params']); } else { - $dVueErreur = ['Erreur : Action inconnue']; - echo $twig->render('accueil.html', ['dVueErreur' => $dVueErreur]); + echo $twig->render('accueil.html'); } } catch (Error $error) { diff --git a/php/src/controleur/MembreControleur.php b/php/src/controleur/MembreControleur.php index ac0f44b..f63b8aa 100755 --- a/php/src/controleur/MembreControleur.php +++ b/php/src/controleur/MembreControleur.php @@ -11,8 +11,15 @@ class MembreControleur extends UtilisateurControleur { } - + public function deconnexion() + { + global $twig; + session_unset(); + session_destroy(); + header("Location: /SAE_2A_FA-Reseau_ALICA/php/"); + exit(); + } public function createOfferForm() { global $twig; diff --git a/php/src/controleur/ModerateurControleur.php b/php/src/controleur/ModerateurControleur.php old mode 100755 new mode 100644 diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php index f72e5f0..7c8b980 100755 --- a/php/src/controleur/UtilisateurControleur.php +++ b/php/src/controleur/UtilisateurControleur.php @@ -27,10 +27,17 @@ class UtilisateurControleur $utilisateur = $userModel->connection($email, $motDePasse); if ($utilisateur instanceof Alumni) { - $_SESSION['utilisateur'] = $utilisateur; - - // echo $twig->render('accueil.html',[]); - header('Location: accueil'); + $_SESSION['nom'] = $utilisateur->getNom(); + $_SESSION['prenom'] = $utilisateur->getPrenom(); + $_SESSION['role'] = $utilisateur->getRole(); + $_SESSION['id'] = $utilisateur->getId(); + + echo $twig->render('accueil.html',[ + 'nom' => $_SESSION['nom'], + 'prenom' => $_SESSION['prenom'], + 'role' => $_SESSION['role'], + 'id' => $_SESSION['id' + ]]); return; } else { @@ -254,7 +261,7 @@ class UtilisateurControleur global $twig; $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant $userModel = new UtilisateurModele(); - $nbParPage = 10; + $nbParPage = 6; $nombreTotalPages = ceil(($userModel->getNbTotalPages())/$nbParPage); if (isset($params['id'] ) && $params['id'] != null) { $page = Validation::validerIntPossitif($params['id']); @@ -277,13 +284,5 @@ class UtilisateurControleur } } - public function deconnexion() - { - session_destroy(); - - header('Location: accueil'); - // global $twig; - // $twig->render('accueil.html',[]); - exit(); - } + } \ No newline at end of file diff --git a/php/src/gateway/AlumniGateway.php b/php/src/gateway/AlumniGateway.php index eaa8c6e..89153f2 100644 --- a/php/src/gateway/AlumniGateway.php +++ b/php/src/gateway/AlumniGateway.php @@ -76,5 +76,26 @@ class AlumniGateway return $res[0]['id']; } + public function deleteUser(int $accountId) + { + // Supprimer les enregistrements liés dans AutreTable + $query = 'DELETE FROM Profil WHERE alumni=:i'; + $this->con->executeQuery($query, array( + ':i' => array($accountId, PDO::PARAM_INT) + )); + + $query = 'DELETE FROM Offre WHERE offreur=:i'; + $this->con->executeQuery($query, array( + ':i' => array($accountId, PDO::PARAM_INT) + )); + + // Ensuite, supprimer l'enregistrement dans Alumni + $query = 'DELETE FROM Alumni WHERE id=:i'; + $this->con->executeQuery($query, array( + ':i' => array($accountId, PDO::PARAM_INT) + )); + + return $this->con->getResults(); + } } diff --git a/php/src/metier/Alumni.php b/php/src/metier/Alumni.php index 610b752..70e5aa8 100644 --- a/php/src/metier/Alumni.php +++ b/php/src/metier/Alumni.php @@ -34,7 +34,7 @@ class Alumni{ $this->email = $email; $this->motDePasse = $motDePasse; $this->role = $role; - $this->profil = new Profil($nom, $prenom, $email, "","", "", "",""); + $this->profil = new Profil($id,$nom, $prenom, $email, "","", "", "",""); } /** diff --git a/php/src/metier/Profil.php b/php/src/metier/Profil.php index 9bd0f06..cd98118 100644 --- a/php/src/metier/Profil.php +++ b/php/src/metier/Profil.php @@ -51,9 +51,9 @@ class Profil * @param string $githubUrl * @param string $portfolioUrl */ - public function __construct(string $nom, string $prenom, string $email, ?string $image,string $cv, string $linkedinUrl, string $githubUrl, string $portfolioUrl) + public function __construct(int $alumni,string $nom, string $prenom, string $email, ?string $image,string $cv, string $linkedinUrl, string $githubUrl, string $portfolioUrl) { - + $this->id = $alumni; $this->nom = $nom; $this->prenom = $prenom; $this->image = $image; @@ -65,7 +65,10 @@ class Profil } - + public function getId(): int + { + return $this->id; + } public function getImage(): ?string { return $this->image ?? 'logo.png'; diff --git a/php/src/modele/AdminModele.php b/php/src/modele/AdminModele.php index ac33e99..1430ab5 100755 --- a/php/src/modele/AdminModele.php +++ b/php/src/modele/AdminModele.php @@ -2,6 +2,7 @@ namespace App\modele; +use App\gateway\Connection; use App\metier\Alumni; class AdminModele extends MembreModele @@ -10,9 +11,21 @@ class AdminModele extends MembreModele * @description supprimer un compte * @param Alumni $account compte à supprimer */ - public function deleteAccount(\App\metier\Alumni $account) + public function deleteAccount(int $accountId) { - // TO DO + global $twig; + $dVueErreur = []; + $con = new Connection(DB_HOST, DB_USER, DB_PASS); + $gate = new \App\gateway\AlumniGateway($con); + $result = $gate->deleteUser($accountId); + /* try { + + var_dump($result); + } catch (\Exception $e) { + $dVueErreur[] = "Erreur lors de la suppression du compte"; + echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); + }*/ + } /** diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php index c8eb959..ef78956 100755 --- a/php/src/modele/UtilisateurModele.php +++ b/php/src/modele/UtilisateurModele.php @@ -88,9 +88,9 @@ class UtilisateurModele $gate = new AlumniGateway($con); // Récupérez l'utilisateur avec l'email donné en utilisant AlumniGateway $utilisateur = $gate->findByEmail($email); - if ($utilisateur instanceof Alumni) { + if (isset($utilisateur[0])) { // L'utilisateur existe, retournez-le - return $utilisateur; + return new Alumni($utilisateur[0]['id'],$utilisateur[0]['mail'], $utilisateur[0]['mdp'], $utilisateur[0]['role'],$utilisateur[0]['nom'],$utilisateur[0]['prenom']); } else { // L'utilisateur n'existe pas, renvoyez null return null; @@ -196,6 +196,7 @@ class UtilisateurModele $profils = array(); foreach ($data as $row) { $profils[] = new Profil( + $row['alumni'], $row['nom'], $row['prenom'], $row['email'], diff --git a/php/templates/OffersList.html b/php/templates/OffersList.html index 6353a39..f7b924d 100644 --- a/php/templates/OffersList.html +++ b/php/templates/OffersList.html @@ -97,26 +97,29 @@
- {% for offre in offres %} -
-
- logo -

{{ offre.getNom() }}

-
-
-

{{offre.getOffreur().Prenom()}}, {{offre.getOffreur().getNom() }} | {{ offre.getDateStringFr()}}

-

{{ offre.getDescription() }}

-
- -
- location -

{{offre.getVille()}}

-
- -
+ {% if offre is not empty %} + {% for offre in offres %} +
+
+ logo +

{{ offre.getNom() }}

+
+
+

{{offre.getOffreur().Prenom()}}, {{offre.getOffreur().getNom() }} | {{ offre.getDateStringFr()}}

+

{{ offre.getDescription() }}

+
- {% endfor %} +
+ location +

{{offre.getVille()}}

+
+ +
+ {% endfor %} + {% else %} +
  • Aucune offre trouvée.
  • + {% endif %}