From 32a95fe4c2ac4fbbf7563ee028052b8304eb5bd4 Mon Sep 17 00:00:00 2001 From: rahassou Date: Fri, 16 Dec 2022 17:23:06 +0100 Subject: [PATCH] ajout liste prive --- src/.htaccess | 4 +- src/config/config.php | 1 + src/controller/CtrlUtilisateur.php | 124 ++++++++-- src/controller/CtrlVisiteur.php | 76 ++++--- src/controller/FrontControleur.php | 8 +- src/modele/MdlUtilisateur.php | 65 ++---- src/modele/MdlVisiteur.php | 24 +- src/modele/gateway/ListeGateway.php | 51 +++-- src/modele/gateway/TacheGateway.php | 8 +- src/vue/html/NavBar.php | 5 +- src/vue/html/PageListePrive.php | 339 ++++++++++++++++++++++++++++ src/vue/html/PageListePublic.php | 50 ++-- 12 files changed, 592 insertions(+), 163 deletions(-) create mode 100644 src/vue/html/PageListePrive.php diff --git a/src/.htaccess b/src/.htaccess index ec1fb4b..4867d65 100755 --- a/src/.htaccess +++ b/src/.htaccess @@ -16,6 +16,4 @@ RewriteRule ^VueListePublic$ index.php?action=redirectionListePublic [L] RewriteRule ^logout$ index.php?action=logout [L] RewriteRule ^MonProfil$ index.php?action=redirectionProfil [L] RewriteRule ^supprimerCompte$ index.php?action=supprimerCompte [L] -RewriteRule ^previousPage$ index.php?action=pagePrécédente [L] -RewriteRule ^nextPage$ index.php?action=pageSuivante [L] -RewriteRule ^Users$ index.php?action=voirUser [L] \ No newline at end of file +RewriteRule ^listePrive$ index.php?action=listePrive [L] diff --git a/src/config/config.php b/src/config/config.php index 2001310..6595dbf 100755 --- a/src/config/config.php +++ b/src/config/config.php @@ -12,6 +12,7 @@ $dsn='mysql:host=londres.uca.local;dbname=dbemkartal1'; $vues['erreur']='vue/html/erreur.php'; $vues['inscription']='vue/html/inscription.php'; $vues['listPublic']='vue/html/PageListePublic.php'; +$vues['listPrive']='vue/html/PageListePrive.php'; $vues['login']='vue/html/login.php'; $vues['NavBar']='vue/html/NavBar.php'; $vues['profil']='vue/html/profil.php'; diff --git a/src/controller/CtrlUtilisateur.php b/src/controller/CtrlUtilisateur.php index eab90f0..d7c21f9 100755 --- a/src/controller/CtrlUtilisateur.php +++ b/src/controller/CtrlUtilisateur.php @@ -32,11 +32,35 @@ class CtrlUtilisateur { case "supprimerCompte": $this->supprimerCompte($dVueErreur); break; - - case "modifMdp": - $this->changerMotDePasse($dVueErreur); + + case "listePrive": + $this->ConsulterListePrive($dVueErreur); + break; + + case "SupprimerTachePrive": + $this->SupprimerTachePrive($dVueErreur); + break; + + case "AjouterTachePrive": + $this->AjouterTachePrive($dVueErreur); + break; + + case "ModifierListePrive": + $this->ModifierListePrive($dVueErreur); + break; + + case "checkPrive": + $this->checkPrive($dVueErreur); break; + case "AjouterListePrive": + $this->AjouterListePrive($dVueErreur); + break; + + case "SupprimerListePrive": + $this->SupprimerListePrive($dVueErreur); + break; + default: $dVueErreur[] = "Erreur d'appel php"; require ($rep.$vues['erreur']); @@ -46,13 +70,13 @@ class CtrlUtilisateur { } catch (PDOException $e) { //si erreur BD, pas le cas ici - $dVueErreur[] = "Erreur BD!!! "; + $dVueEreur[] = "Erreur BD!!! "; require ($rep.$vues['erreur']); } catch (Exception $e2) { - $dVueErreur[] = "Erreur inattendue!!! "; + $dVueEreur[] = "Erreur inattendue!!! "; require ($rep.$vues['erreur']); } @@ -61,13 +85,6 @@ class CtrlUtilisateur { exit(0); }//fin constructeur - function ConsulterListePublic(array $dVueErreur) { - global $rep,$vues; - $listes = MdlVisiteur::RecupererListePublic(); - $taches = MdlVisiteur::RecupererTache(); - $action=NULL; - require ($rep.$vues['listPublic']); - } function SeDeconnecter(array $dVueErreur){ global $rep,$vues; @@ -80,32 +97,97 @@ class CtrlUtilisateur { global $rep,$vues; $action=NULL; $user=MdlUtilisateur::isConnected(); - $nombreListe=MdlUtilisateur::recupererNombreDeListe(); require ($rep.$vues['profil']); } function supprimerCompte(array $dVueErreur){ global $rep,$vues; $action=NULL; - MdlUtilisateur::suppressionUtilisateur(); + $user=MdlUtilisateur::suppressionUtilisateur(); require ($rep.$vues['login']); } - function changerMotDePasse(array $dVueErreur){ + function ConsulterListePrive(array $dVueErreur) { + global $rep,$vues; + $listesPrive = MdlUtilisateur::RecupererListePrive(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPrive']); + } + + function SupprimerTachePrive(array $dVueErreur){ + global $rep,$vues; + $tache = MdlVisiteur::SupprimerTache(); + $this->ConsulterListePrive($dVueErreur); + } + + function SupprimerListePrive(array $dVueErreur){ + global $rep,$vues; + $liste = MdlVisiteur::SupprimerListe(); + $this->ConsulterListePrive($dVueErreur); + + } + + public function AjouterTachePrive(array $dVueErreur){ global $rep,$vues; try{ - MdlUtilisateur::changerMotDePasse(); + $tache = MdlVisiteur::AjouterTache($dVueErreur); + $this->ConsulterListePrive($dVueErreur); + } + catch (Exception $e) + { + $ErreurLog=$e->getMessage(); + $listesPrive= MdlUtilisateur::RecupererListePrive(); + $taches = MdlVisiteur::RecupererTache(); $action=NULL; - require ($rep.$vues['login']); - } - catch(Exception $e) + require ($rep.$vues['listPrive']); + } + } + + + public function ModifierListePrive(array $dVueErreur){ + global $rep,$vues; + try{ + $tache = MdlVisiteur::ModifierListe($dVueErreurs); + $this->ConsulterListePrive($dVueErreur); + } + catch (Exception $e) { - $dVueErreur[] = $e->getMessage(); - require ($rep.$vues['erreur']); + $ErreurLog=$e->getMessage(); + $listesPrive= MdlUtilisateur::RecupererListePrive(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPublic']); + } + } + + + public function checkPrive() + { + global $rep,$vues; + $tache = MdlVisiteur::check(); + $this->ConsulterListePrive($dVueErreur); + } + + public function AjouterListePrive(array $dVueErreur){ + global $rep,$vues; + + try{ + $tache = MdlUtilisateur::AjouterListePrive($dVueErreur); + $this->ConsulterListePrive($dVueErreur); + } + catch (Exception $e) + { + $ErreurLog=$e->getMessage(); + $listes = MdlUtilisateur::RecupererListePrive(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPrive']); } } + }//fin class ?> diff --git a/src/controller/CtrlVisiteur.php b/src/controller/CtrlVisiteur.php index ee06715..4a26d48 100755 --- a/src/controller/CtrlVisiteur.php +++ b/src/controller/CtrlVisiteur.php @@ -60,17 +60,9 @@ class CtrlVisiteur { case "ModifierListe": $this->ModifierListe($dVueErreur); break; - - case "pagePrécédente": - $this->listePrécédente($dVueErreur); - break; - - case "pageSuivante": - $this->listeSuivante($dVueErreur); - break; case "check": - $this->check($dVueErreur); + $this->check(); break; //mauvaise action @@ -153,18 +145,38 @@ class CtrlVisiteur { } function SupprimerTache(array $dVueErreur){ + global $rep,$vues; $tache = MdlVisiteur::SupprimerTache(); - $this->ConsulterListePublic($dVueErreur); + $listes = MdlVisiteur::RecupererListePublic(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPublic']); } function SupprimerListe(array $dVueErreur){ + global $rep,$vues; $liste = MdlVisiteur::SupprimerListe(); - $this->ConsulterListePublic($dVueErreur); + $listes = MdlVisiteur::RecupererListePublic(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPublic']); } + public function AjouterTache(array $dVueErreur){ - $tache = MdlVisiteur::AjouterTache(); - $this->ConsulterListePublic($dVueErreur); + global $rep,$vues; + try{ + $tache = MdlVisiteur::AjouterTache($dVueErreur); + $this->ConsulterListePublic($dVueErreur); + } + catch (Exception $e) + { + $ErreurLog=$e->getMessage(); + $listes = MdlVisiteur::RecupererListePublic(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPublic']); + } } public function AjouterListePublic(array $dVueErreur){ @@ -182,32 +194,36 @@ class CtrlVisiteur { $action=NULL; require ($rep.$vues['listPublic']); } + } public function ModifierListe(array $dVueErreur){ - $tache = MdlVisiteur::ModifierListe(); - $this->ConsulterListePublic($dVueErreur); + global $rep,$vues; + try{ + $tache = MdlVisiteur::ModifierListe($dVueErreurs); + $this->ConsulterListePublic($dVueErreur); + } + catch (Exception $e) + { + $ErreurLog=$e->getMessage(); + $listes = MdlVisiteur::RecupererListePublic(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPublic']); + } } - public function check(array $dVueErreur) + + public function check() { + global $rep,$vues; $tache = MdlVisiteur::check(); - $this->ConsulterListePublic($dVueErreur); - } - - public function listePrécédente(array $dVueErreur){ - if($_COOKIE['page']>1){ - setcookie('page', $_COOKIE['page'] - 1, time() + 24*3600); - } - $this->ConsulterListePublic($dVueErreur); - } - - public function listeSuivante(array $dVueErreur){ - setcookie('page', $_COOKIE['page'] + 1, time() + 24*3600); - $this->ConsulterListePublic($dVueErreur); + $listes = MdlVisiteur::RecupererListePublic(); + $taches = MdlVisiteur::RecupererTache(); + $action=NULL; + require ($rep.$vues['listPublic']); } - }//fin class ?> diff --git a/src/controller/FrontControleur.php b/src/controller/FrontControleur.php index 549a763..67f7c25 100755 --- a/src/controller/FrontControleur.php +++ b/src/controller/FrontControleur.php @@ -1,18 +1,14 @@ array('logout','redirectionProfil','supprimerCompte','modifMdp'), - 'Admin' => array('voirUser') + 'Utilisateur' => array('logout','redirectionProfil','supprimerCompte', 'listePrive','AjouterListePrive', 'SupprimerListePrive', 'AjouterTachePrive', 'ModifierListePrive', 'SupprimerTachePrive'), + 'Admin' => array() ); //On récupère l'action diff --git a/src/modele/MdlUtilisateur.php b/src/modele/MdlUtilisateur.php index 4afe70c..1915835 100755 --- a/src/modele/MdlUtilisateur.php +++ b/src/modele/MdlUtilisateur.php @@ -3,81 +3,66 @@ class MdlUtilisateur { - public function __construct(){ + public function __construct(){ - } + } public function connection(){ - $gtw=new UtilisateurGateway(); - $mail=Validation::cleanMail($_POST['mail']); - $mdp=$_POST['password']; + $gtw=new UtilisateurGateway(); + $mail=Validation::cleanMail($_POST['mail']); + $mdp=$_POST['password']; $verif_pass=$gtw->getCredentials($mail); - if(password_verify($mdp,$verif_pass)){ + if(password_verify($mdp,$verif_pass)){ $userCurrent=$gtw->RechercheUtilisateurViaEmail($mail); $_SESSION['role']='user'; - $_SESSION['id']=$userCurrent->getId(); + $_SESSION['id']=$userCurrent->getId(); $_SESSION['nom']=$userCurrent->getNom(); $_SESSION['prenom']=$userCurrent->getPrenom(); $_SESSION['pseudo']=$userCurrent->getPseudo(); $_SESSION['email']=$userCurrent->getMail(); return $userCurrent; - } - else throw new Exception('Mot de passe incorrect*'); - } + } + else throw new Exception('Mot de passe incorrect*'); + } public function isConnected(){ - if(isset($_SESSION['id']) && isset($_SESSION['role']) && $_SESSION['role']=='user') { + if(isset($_SESSION['id']) && isset($_SESSION['role'])) { $id=Validation::cleanInt($_SESSION['id']); $nom=Validation::cleanString($_SESSION['nom']); $prenom=Validation::cleanString($_SESSION['prenom']); - $pseudo=Validation::cleanPseudo($_SESSION['pseudo']); + $pseudo=Validation::cleanString($_SESSION['pseudo']); $email=Validation::cleanMail($_SESSION['email']); return new Utilisateur($id,$nom,$prenom,$pseudo,$email); } else return null; } + public static function déconnexion(){ session_unset(); session_destroy(); $_SESSION = array(); } - - public static function recupererNombreDeListe(){ - $listeGtw = new ListeGateway(); - $id = Validation::cleanInt($_SESSION['id']); - return $listeGtw->CountListe(intval($id)); - } - public static function suppressionUtilisateur(){ - + public function suppressionUtilisateur(){ $userGtw = new UtilisateurGateway(); $id=Validation::cleanInt($_SESSION['id']); $userGtw->SupprimerUtilisateur(intval($id)); MdlUtilisateur::déconnexion(); } - public static function changerMotDePasse(){ - $userGtw = new UtilisateurGateway(); - $id=Validation::cleanInt($_SESSION['id']); - $mail=Validation::cleanMail($_SESSION['email']); - $mdp=$_POST['passwordCurrent']; - $newMdp=$_POST['newPassword']; - $verif_pass=$userGtw->getCredentials($mail); - if(password_verify($mdp,$verif_pass)){ - if($newMdp == $_POST['confirmNewPassword']){ - if (!preg_match('/^.{5,}$/', $mdp)) { - throw new Exception("Mot de passe trop faible. Veuillez recommencer !"); - } - else { - $userGtw->modifMdp($id, password_hash($newMdp, PASSWORD_DEFAULT)); - } - } - else throw new Exception("Erreur lors de la confirmation du mot de passe."); - } - else throw new Exception("Mot de passe Incorrect"); - + public function AjouterListePrive(&$dVueErreur){ + $taskGtw = new ListeGateway(); + $nom=$_POST['nom-ajout-liste']; + $description=$_POST['description-ajout-liste']; + $idCreateur =Validation::cleanInt($_SESSION['id']); + Validation::val_form_add($nom,$description,$dVueErreur); + $taskGtw->Ajouter($nom, $description,0, $idCreateur); } + public static function RecupererListePrive(){ + $userGtw = new ListeGateway(); + return $userGtw->getListePrive(0,10); + } } diff --git a/src/modele/MdlVisiteur.php b/src/modele/MdlVisiteur.php index c3be432..0ee18e6 100755 --- a/src/modele/MdlVisiteur.php +++ b/src/modele/MdlVisiteur.php @@ -3,11 +3,11 @@ class MdlVisiteur { - public function __construct(){ + public function __construct(){ - } + } - public static function CreerUtilisateur(&$dVueErreur){ + public static function CreerUtilisateur(&$dVueErreur){ $userGtw = new UtilisateurGateway(); Validation::val_form_user($_POST["nom-Form"],$_POST["prenom-Form"],$_POST["pseudo-Form"],$_POST["password"],$_POST["mail"],$dVueErreur); $userGtw->isExisteViaMail($_POST["mail"]); @@ -18,10 +18,7 @@ class MdlVisiteur public static function RecupererListePublic(){ $userGtw = new ListeGateway(); - if(isset($_COOKIE['page'])) - return $userGtw->getListePublic(($_COOKIE['page']-1)*10,10); - else - return $userGtw->getListePublic(1,10); + return $userGtw->getListePublic(0,10); } public static function RecupererTache(){ @@ -43,7 +40,7 @@ class MdlVisiteur $userGtw->Supprimer($id); } - public function AjouterTache(){ + public function AjouterTache(&$dVueErreur){ $taskGtw = new TacheGateway(); $id = $_POST['idListe']; $nom = $_POST['nom-ajout']; @@ -52,11 +49,12 @@ class MdlVisiteur $taskGtw->AjouterTache($nom, $description,false,$id); } - public function ModifierListe(){ + public function ModifierListe(&$dVueErreur){ $userGtw = new ListeGateway(); $id = $_POST['idListe']; - $nom = $_POST['nom-modif-liste']; - $description = $_POST['description-modif-liste']; + $nom = Validation::cleanText($_POST['nom-modif-liste']); + $description = Validation::cleanText($_POST['description-modif-liste']); + if($description == NULL){ $userGtw->EditerNom($id, $nom); } @@ -69,11 +67,11 @@ class MdlVisiteur } public function AjouterListePublic(&$dVueErreur){ - $listGtw = new ListeGateway(); + $taskGtw = new ListeGateway(); $nom=$_POST['nom-ajout-liste']; $description=$_POST['description-ajout-liste']; Validation::val_form_add($nom,$description,$dVueErreur); - $listGtw->Ajouter($nom, $description,1, true); + $taskGtw->Ajouter($nom, $description,1, null); } public function check(){ diff --git a/src/modele/gateway/ListeGateway.php b/src/modele/gateway/ListeGateway.php index c5c12dc..9c79ab7 100755 --- a/src/modele/gateway/ListeGateway.php +++ b/src/modele/gateway/ListeGateway.php @@ -1,40 +1,35 @@ con=new Connection($dsn,$user,$pass); } public function Ajouter(string $nom, string $description, bool $estPublic, string $createur){ - $query='INSERT INTO ToDoList_Liste(nom, description, dateCreation,estPublic, idUtilisateur) VALUES(:nom,:description,CURRENT_DATE, :estPublic, :createur);'; + $query='INSERT INTO ToDoList_Liste(nom, description, dateCreation,estPublic, idUtilisateur) VALUES(:nom,:description,CURRENT_DATE, :estPublic, :createur);'; $this->con->executeQuery($query, array( - 'nom' => array($nom, PDO::PARAM_STR), - 'description' => array($description, PDO::PARAM_STR), - 'estPublic' => array($estPublic, PDO::PARAM_INT), - 'createur' => array($createur, PDO::PARAM_STR), - )); + 'nom' => array($nom, PDO::PARAM_STR), + 'description' => array($description, PDO::PARAM_STR), + 'estPublic' => array($estPublic, PDO::PARAM_INT), + 'createur' => array($createur, PDO::PARAM_STR), + )); } public function Editer(string $id, string $nom, string $description){ - $query='UPDATE ToDoList_Liste SET nom=:nom AND description=:description WHERE id=:id;'; - $this->con->executeQuery($query, array( - 'nom' => array($nom, PDO::PARAM_STR), - 'id' => array($id,PDO::PARAM_INT), - 'description' => array($description, PDO::PARAM_STR)) + $query='UPDATE ToDoList_Liste SET nom=:nom, description=:description WHERE id=:id;'; + $this->con->executeQuery($query, array( + 'nom' => array($nom, PDO::PARAM_STR), + 'description' => array($description, PDO::PARAM_STR), + 'id' => array($id,PDO::PARAM_INT)) ); } - public function CountListe($id){ - $query="SELECT count(*) as nombreListe FROM ToDoList_Liste WHERE idUtilisateur=:id"; - $this->con->executeQuery($query, array('id' => array($id, PDO::PARAM_INT))); - return $this->con->getResults()[0]['nombreListe']; - } - public function EditerNom(string $id, string $nom){ $query='UPDATE ToDoList_Liste SET nom=:nom WHERE id=:id;'; $this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR),'id' => array($id, PDO::PARAM_INT))); + } public function EditerDescription(string $id, string $description){ @@ -58,10 +53,20 @@ class ListeGateway{ $query = "SELECT * FROM ToDoList_Liste WHERE estPublic LIMIT $offset, $limit"; $this->con->executeQuery($query); $listes = []; - foreach ($this->con->getResults() as $liste) { - $listes[] = new Liste($liste["id"],$liste["nom"],$liste["description"],$liste["dateCreation"],$liste["estPublic"],$liste["idUtilisateur"]); - } - return $listes; + foreach ($this->con->getResults() as $liste) { + $listes[] = new Liste($liste["id"],$liste["nom"],$liste["description"],$liste["dateCreation"],$liste["estPublic"],$liste["idUtilisateur"]); + } + return $listes; + } + + public function getListePrive($offset,$limit){ + $query = "SELECT * FROM ToDoList_Liste WHERE !estPublic LIMIT $offset, $limit"; + $this->con->executeQuery($query); + $listes = []; + foreach ($this->con->getResults() as $liste) { + $listes[] = new Liste($liste["id"],$liste["nom"],$liste["description"],$liste["dateCreation"],$liste["estPublic"],$liste["idUtilisateur"]); + } + return $listes; } } ?> \ No newline at end of file diff --git a/src/modele/gateway/TacheGateway.php b/src/modele/gateway/TacheGateway.php index 7eeb072..075f398 100755 --- a/src/modele/gateway/TacheGateway.php +++ b/src/modele/gateway/TacheGateway.php @@ -1,7 +1,7 @@ con=new Connection($dsn,$user,$pass); } @@ -17,8 +17,8 @@ class TacheGateway{ } public function Editer(string $id, string $nom, string $description){ - $query='UPDATE ToDoList_Tache SET nom=:nom, description =:description WHERE id=:id;'; - $this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR), 'description' => array($description, PDO::PARAM_STR), 'id' => array($id, PDO::PARAM_INT))); + $query='UPDATE ToDoList_Tache SET nom=:nom, description =:description WHERE id=:id;'; + $this->con->executeQuery($query, array('nom' => array($nom, PDO::PARAM_STR), 'description' => array($description, PDO::PARAM_STR), 'id' => array($id, PDO::PARAM_INT))); } public function EditerNom(string $id, string $nom){ diff --git a/src/vue/html/NavBar.php b/src/vue/html/NavBar.php index ac16dce..27885ec 100755 --- a/src/vue/html/NavBar.php +++ b/src/vue/html/NavBar.php @@ -20,10 +20,7 @@
Listes Publiques
-
Mes listes
- -
Les utilisateurs
- +
Mes listes
Mon Profil
diff --git a/src/vue/html/PageListePrive.php b/src/vue/html/PageListePrive.php new file mode 100644 index 0000000..13da8de --- /dev/null +++ b/src/vue/html/PageListePrive.php @@ -0,0 +1,339 @@ + + + + + + + Home Page + + + + + + + + + + +
+
+
+ + + +
+ +
+ + getIdUtilisateur() == $_SESSION['id']){ + + $done = 0; + $total = 0; + ?> + + + +
+
+
+
+
+
+

+ getNom()?> + + + + + + + +

+

getDescription()?> +

getDateCreation()?> : getIdUtilisateur()?>

+
+ + + + +
+ +
+ + + +
+ +
+ + + +
    + getIdListe() == $liste->getId()){ + if($tache->getEstValide() == 1){ + $done = $done + 1; + } + $total = $total + 1; + ?> +
  • +
    + getEstValide() == 1) echo "checked" ?>> + +
    + getNom() ?> : getDescription() ?> + + + + +
  • + +
+
+
+ +
%;">
+
+
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/src/vue/html/PageListePublic.php b/src/vue/html/PageListePublic.php index 4ae3aaa..b15ed47 100755 --- a/src/vue/html/PageListePublic.php +++ b/src/vue/html/PageListePublic.php @@ -1,14 +1,13 @@ - + Home Page - @@ -114,14 +113,24 @@