Ajout de commentaires

main
Allan POINT 3 years ago
parent 56ca1d6c52
commit 699ca776c7

@ -31,7 +31,7 @@ class ListeGateway
":createur" => [$l->getCreateur(), PDO::PARAM_STR]
]);
}
public function inserer2(string $nom, string $createur)
public function inserer2(string $nom, string $createur) : bool
{
$requette = "INSERT INTO _TodoList(nom, dateCreation, createur)
VALUES(:nom, NOW(), :createur)";

@ -4,20 +4,13 @@ require_once("controleur/ControleurCommun.php");
class ControleurConnecte {
function __construct() {
global $rep,$vues; // nécessaire pour utiliser variables globales
//debut
//on initialise un tableau d'erreur
$dVueEreur = array ();
$erreurs = array ();
try{
// Récupération de l'action a effectuer
$action=Validation::netoyerString($_REQUEST['action']);
switch($action) {
//pas d'action, on r<>initialise 1er appel
case NULL:
echo "Normal";
//$this->Reinit();
$this->seeLists();
break;
case "seeLists":
$this->seeLists();
@ -62,16 +55,11 @@ class ControleurConnecte {
$this->veuxModifierTache();
break;
default:
echo "Default";
/*
$dVueEreur[] = "Erreur d'appel php";
require ($rep.$vues['vuephp1']);
*/
throw new Exception("Action inconnue");
break;
}
}catch(PDOException $e)
{
//si erreur BD, pas le cas ici
echo "Erreur PDO";
$erreurs[] =$e->getMessage();
require ("vues/erreur.php");
@ -81,78 +69,108 @@ class ControleurConnecte {
$erreurs[] =$e2->getMessage();
require ("vues/erreur.php");
}
// exit(0);
}
function Reinit() {
global $rep,$vues; // nécessaire pour utiliser variables globales
require ($rep.$vues['connection']);
}
/*
* \brief Permet d'afficher les lists de l'utilisateur.trice connecté.e
*/
function seeLists()
{
// Si la page n'est pas set, on prend la première page
if(!isset($_REQUEST["page"]) || empty($_REQUEST["page"]))
{
$page = 1;
}
else
{
// si la validation a échouée, on prend la première page
$page = Validation::validerUnIntSupperieurZero($_REQUEST["page"]) ? $_REQUEST["page"] : 1;
}
// Si le nombre d'élément n'est pas set, on en prend par défaut 10
if(!isset($_GET["nbElements"]) || empty($_GET["nbElements"]))
{
$nbElements = 10;
}
else
{
// Si la validation a échouée, on prend 10 éléments, sinon, le nombre désiré par l'utilisateur.trice
$nbElements = Validation::validerUnIntSupperieurZero($_GET["nbElements"]) ? $_GET["nbElements"] : 10;
}
$mdl = new ModelConnecte();
// Récupération des listes de l'utilisateur.trice connécté.e par le modèle
$todoLists = $mdl->getLists(Validation::netoyerString($_SESSION["login"]), $page, $nbElements);
// Récupération du numéro de page le plus grand en fonction des taches de l'utilisateur.trice et du nombre d'éléments demendé
$maxPage = $mdl->getMaxPageListes(Validation::netoyerString($_SESSION["login"]), $nbElements);
// Affichage de la vue
require("vues/accueil.php");
}
/*
* \brief Permet de visualiser les tache d'une liste
*/
function seeList()
{
// Erreur si aucune liste n'est demendée.
if(!isset($_REQUEST["list"]) || empty($_REQUEST["list"]))
{
throw new Exception("Aucune liste n'est demendée");
}
// Erreur si le numéro de la liste est < 0
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Valeur illégale de la liste requétée");
}
// TODO: Verifier que c'est bien une liste de l'utilisateur.trice connécté.e
// Si la page n'est pas set, on prend la première page
if(!isset($_REQUEST["page"]) || empty($_REQUEST["page"]))
{
$page = 1;
}
else
{
// si la validation a échouée, on prend la première page
$page = Validation::validerUnIntSupperieurZero($_REQUEST["page"]) ? $_REQUEST["page"] : 1;
}
// Si le nombre d'élément n'est pas set, on en prend par défaut 10
if(!isset($_GET["nbElements"]) || empty($_GET["nbElements"]))
{
$nbElements = 10;
}
else
{
// Si la validation a échouée, on prend 10 éléments, sinon, le nombre désiré par l'utilisateur.trice
$nbElements = Validation::validerUnIntSupperieurZero($_GET["nbElements"]) ? $_GET["nbElements"] : 10;
}
$mdl = new ModelConnecte();
// Récupération des taches dans le modèle
$taches = $mdl->getTaches($_REQUEST["list"], $page, $nbElements);
// Définition des variable nécéssaire à la vue.
$actualList = $_REQUEST["list"];
$nomListe = $mdl->getNomListe($actualList);
$maxPage = $mdl->getMaxPageTaches($actualList, $nbElements);
// Affichage de la vue
require("vues/editeurDeStatuts.php");
}
/*
* \brief Permet d'enrgistrer l'état des taches d'une listes
*/
function editDone()
{
// estFait doit être un tableau des taches faites
if(isset($_REQUEST["estFait"]))
{
if(!is_array($_REQUEST["estFait"]))
@ -160,6 +178,12 @@ class ControleurConnecte {
throw new Exception("La liste des taches faites doit être un tableau.");
}
}
else
{
$_REQUEST["estFait"] = array();
}
// exist contient toute les taches de la page où été l'utilisateur.trice
if(!isset($_REQUEST["exist"]))
{
throw new Exception("Aucune tâche n'est définit");
@ -168,18 +192,33 @@ class ControleurConnecte {
{
throw new Exception("La liste des taches doit être un tableau.");
}
$mdl = new ModelConnecte();
$mdl->setDoneTaches();
// Enregistrement avec le modle
$list = $mdl->setDoneTaches($_REQUEST["exist"], $_REQUEST["estFait"]);
// Rediréction
$_REQUEST["action"] = "seeList";
$_REQUEST["list"] = $list;
new ControleurConnecte();
}
/*
* \brief Permet d'afficher la page d'ajout de liste
*/
function wantAddList()
{
// Affichage de la vue
require("vues/ajouterListe.php");
}
/*
* \brief Permet de créer une todoList
*/
function addList()
{
// Si le nom de la nouvelle liste n'existe pas ou si elle est vide, on lève une exception
if(!isset($_REQUEST["nomNouvelleListe"]))
{
throw new Exception("La nouvelle liste doit avoir un nom!");
@ -188,24 +227,32 @@ class ControleurConnecte {
{
throw new Exception("La nouvelle liste doit avoir un nom!");
}
// Nétoyage du nom de la nouvelle liste
$nom = Validation::netoyerString($_REQUEST["nomNouvelleListe"]);
// Si nom est null, c'est qu'il y a eu un problème avec le netoyage
if(is_null($nom))
{
throw new Exception("Le nom de la nouvelle liste contien un ou plusieurs caractères illégales.");
}
$mdl = new ModelConnecte();
// Création de la todoList par le modèle.
$mdl->createTodoList($nom);
// Rediréction vers l'accueil
$_REQUEST["action"] = "seeLists";
new ControleurConnecte();
}
/*
* \brief Permet d'afficher la page de création de tache
*/
function wantAddTask()
{
$mdl = new ModelConnecte();
if(!$mdl->estConnecte())
{
throw new Exception("Permission non suffisantes pour effectuer cette action!");
}
// Si la liste où on veut rajouter la tache n'est pas set ou est vide, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le numero de liste doit exister");
@ -214,21 +261,28 @@ class ControleurConnecte {
{
throw new Exception("Le numero de liste doit être définit");
}
// Validation du numérode la liste, renvoi null si la validation a échouée
$actualList = Validation::validerUnIntSupperieurZero($_REQUEST["list"]) ? $_REQUEST["list"] : null;
// Si la validation a échouée, on lève une exception
if(is_null($actualList))
{
throw new Exception("Le numero de liste doui être un entier supperieur à 0");
}
// Affichage de la vue
require("vues/addTask.php");
}
/*
* \brief Permet d'ajouter une tache dans une liste
*/
function addTask()
{
$mdl = new ModelConnecte();
if(!$mdl->estConnecte())
{
throw new Exception("Permission non suffisantes pour effectuer cette action!");
}
// Si le nom de la tache est vide ou n'est pas set, on lève une exception
if(!isset($_REQUEST["nomTache"]))
{
throw new Exception("Le nom de la novelle tache est introuvable (?o?)'");
@ -237,10 +291,14 @@ class ControleurConnecte {
{
throw new Exception("Le nom de la nouvelle tache ne doit pas être vide");
}
// Si le commentaire de la tache n'est pas set, on lève une exception
if(!isset($_REQUEST["commentaireTache"]))
{
throw new Exception("Le commentaire de la tache est introuvable!");
}
// Si le numéro de la liste est vide ou n'est pas set, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le numero de liste doit exister");
@ -249,27 +307,35 @@ class ControleurConnecte {
{
throw new Exception("Le numero de liste doit être définit");
}
// Validation des paramètres
$list = Validation::validerUnIntSupperieurZero($_REQUEST["list"]) ? $_REQUEST["list"] : null;
$nom = Validation::netoyerString($_REQUEST["nomTache"]);
$comm = Validation::netoyerString($_REQUEST["commentaireTache"]);
// Verification des paramètre, si il y en a 1 qui vas pas, on lève une exception
if(is_null($nom) || is_null($comm) || is_null($list))
{
throw new Exception("Le nom, la liste ou le commentaire de la nouvelle tache contiennent des caractèrent illégales!");
}
// Création de la tache par le modèle
$mdl->createTask($nom, $comm, $list);
// Rediréction vers la liste modifée
$_REQUEST["action"] = "seeList";
$_REQUEST["list"] = $list;
new ControleurConnecte();
}
/*
* \brief Permet de supprimer une liste
*/
function supprimerListe()
{
$mdl = new ModelConnecte();
if(!$mdl->estConnecte())
{
throw new Exception("Permission non suffisantes pour effectuer cette action!");
}
// Si le numérode liste n'est pas set ou est vide, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
@ -278,22 +344,28 @@ class ControleurConnecte {
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
// Si le numéro de liste est <= 0, on lève une exception
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// TODO: verifier que c'est bien une liste de l'utilisateur.trice
$mdl->supprimerListe($_REQUEST["list"]);
// Rediréction vers l'accueil
$_REQUEST["action"] = "seeLists";
new ControleurConnecte();
}
/*
* Permet d'effacer une tache d'une liste
*/
function delTask()
{
$mdl = new ModelConnecte();
if(!$mdl->estConnecte())
{
throw new Exception("Permission non suffisantes pour effectuer cette action!");
}
// Si la tache est vide, pas set ou <= 0, on lève une exception
if(!isset($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit exister");
@ -306,6 +378,10 @@ class ControleurConnecte {
{
throw new Exception("Le parametre task doit être un entier strictement superieur à 0");
}
//TODO: verifier que c'est bien la tache de l'utilisateur.trice
// Si le numéro de la liste est vide, pas set ou <= 0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
@ -318,18 +394,36 @@ class ControleurConnecte {
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
//TODO: verifier que c'est bien la list de l'utilisateur.trice et que c'est bien une tache de la liste
// Suppression de la tache par le modèle
$mdl->delTask($_REQUEST["task"]);
//Rediréction vers l'affichage de la liste modifiée
$_REQUEST["action"] = "seeList";
new ControleurConnecte();
}
/*
* \brief permet de se déconnécter
*/
function logout()
{
$mdl = new ModelConnecte();
// Destruction de la séssion par le modèle
$mdl->destroySession();
// Rediréction vers la page de connection
new ControleurCommun();
}
/*
* \brief permet d'afficher la page de modification d'une liste (le nom de la liste)
*/
function veuxModifierListe()
{
// Si le numéro de la liste n'est pas set, vide ou <= 0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
@ -342,16 +436,22 @@ class ControleurConnecte {
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Définition des varables dont a besoin la vue
$listeAModifier = $_REQUEST["list"];
// Affichage de la vue
require("vues/editeurDeListe.php");
}
/*
* \brief Permet de modifier le nom de la liste list
*/
function modifyList()
{
$mdl = new ModelConnecte();
if(!$mdl->estConnecte())
{
throw new Exception("Permission non suffisantes pour effectuer cette action!");
}
// Si le numéro de la lsite est vide, pas set ou <=0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
@ -364,6 +464,8 @@ class ControleurConnecte {
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Si le nouveau non n'est pas set, vide on invalide, on lève une exception
if(!isset($_REQUEST["nouveauNom"]))
{
throw new Exception("Le parametre nouveauNom doit exister");
@ -377,12 +479,21 @@ class ControleurConnecte {
{
throw new Exception("Le nouveau nom contient des caractères illégeaux");
}
// Modification du nom de la liste par le modèle
$mdl->modifierNomListe($_REQUEST["list"], $nouveauNom);
// Rediréction vers l'accueil
$_REQUEST["action"] = "seeLists";
new ControleurConnecte();
}
/*
* \brief Permet d'afficher la page de modification d'une tache
*/
function veuxModifierTache()
{
// Si la tache est vide, pas set ou <=0, on lève une exception
if(!isset($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit exister");
@ -395,6 +506,8 @@ class ControleurConnecte {
{
throw new Exception("Le parametre task doit être un entier strictement superieur à 0");
}
// Si la liste est vide, pas set ou <=0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
@ -407,17 +520,23 @@ class ControleurConnecte {
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Définition des varable nécéssaire à la vue
$tacheAModifier = $_REQUEST["task"];
$listeAModifier = $_REQUEST["list"];
// Affichage de la vue
require("vues/editeurDeTache.php");
}
/*
* \brief Permet de modifier une tache
*/
function editionTache()
{
$mdl = new ModelConnecte();
if(!$mdl->estConnecte())
{
throw new Exception("Permission non suffisantes pour effectuer cette action!");
}
// Si le numéro de la tache est pas set, vide ou <=0, on lève une exception
if(!isset($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit exister");
@ -430,6 +549,8 @@ class ControleurConnecte {
{
throw new Exception("Le parametre task doit être un entier strictement superieur à 0");
}
// Si le numéro de la liste est pas set, vide ou <=0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
@ -442,6 +563,8 @@ class ControleurConnecte {
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Si le nom est vide ou pas set, on lève une exception
if(!isset($_REQUEST["nom"]))
{
throw new Exception("Le parametre nom doit exister");
@ -450,18 +573,30 @@ class ControleurConnecte {
{
throw new Exception("Le paramètre nom doit contenire une valeur");
}
// Si le commentaire est pas set, on lève une exception
if(!isset($_REQUEST["commentaire"]))
{
throw new Exception("Le parametre commentaire doit exister");
}
// Validation des paramètres
$nom = Validation::netoyerString($_REQUEST["nom"]);
$comm = Validation::netoyerString($_REQUEST["commentaire"]);
// Si un des paramètres est invalide, on lève une exception
if(is_null($nom) || is_null($comm))
{
throw new Exception("Le nom ou le commentaire contien des valeurs illégales");
}
// Modification de la tache par le modèle
$mdl->modifierNomCommTache($_REQUEST["task"], $nom, $comm);
// Définition des variables nécessaire à la vue
$list = $_REQUEST["list"];
// Rediréction vers l'affichage le la liste list
$_REQUEST["action"] = "seeList";
new ControleurConnecte();
}

@ -6,24 +6,43 @@ require_once("DAL/gateways/ListeGateway.php");
class ModelConnecte
{
/*
* \brief Permmet de créer une séssion pour se connécter
* \param[in] login Login de l'utilisateur.trice
* \param[in] mdp Mot de passe en claire de l'utilisateur.trice
* \return Le compte connécté
*/
public function connection(string $login, string $mdp) : Compte
{
require("config/dsn.php");
$gw = new CompteGateway(new Connection($dsn, "alpoint", "allanallan"));
// Connection à la basse de données
global $dsn, $loginDB, $pswdDB;
$gw = new CompteGateway(new Connection($dsn, $loginDB, $pswdDB));
// Récupère le compte $login
$compte = $gw->getCompteParPseudo($login);
// Si il a pas trouvé le compte $login, c'est qu'il existe pas
if($compte == null)
{
throw new Exception("Le login ou le mot de passe est incorecte");
}
// Verification du mdp
if(!password_verify($mdp, $compte->getMotDePasse()))
{
throw new Exception("Le login ou le mot de passe est incorecte");
}
// Création de la session
$_SESSION["login"] = $compte->getPseudonyme();
$_SESSION["Lists"] = $compte->getListes();
return $compte;
}
/*
* \brief Permet de savoir si un.e utilisateur.trice est connécté.e
* \return True si une personne est connéctée, sinon false
*/
public function estConnecte() : bool
{
if(isset($_SESSION["login"]) && !empty($_SESSION["login"]))
@ -33,28 +52,52 @@ class ModelConnecte
return false;
}
/*
* \brief Permet d'avoir les $nbElements listes de la page $page appartenant à $pseudo
* \param[in] pseudo Pseudo de l'utilisateur.trice
* \param[in] page Page à charger
* \param[in] nbElements Nombre de liste à charger
* \return La liste des listes de $pseudo
*/
public function getLists(string $pseudo, int $page, int $nbElements)
{
// Connéction a la base de données
global $dsn, $loginDB, $pswdDB;
$gw = new ListeGateway(new Connection($dsn, $loginDB, $pswdDB));
return $gw->getListeParCreateur($page, $nbElements, $pseudo);
}
public function getTaches(int $liste, $page, $nbElements)
{
/*
* \brief Permet d'avoir les $nbElements taches de la page $page appartenant à $liste
* \param[in] liste ID de la liste
* \param[in] page Numéro de la page à charger
* \param[in] nbElements Nombre de tache à charger
* \return Les taches de la liste $liste
*/
public function getTaches(int $liste, int $page, int $nbElements)
{
// Connection à la base de données
global $dsn, $loginDB, $pswdDB;
$gw = new TacheGateway(new Connection($dsn, $loginDB, $pswdDB));
return $taches = $gw->getTachesParIDListe($liste, $page, $nbElements);
return $gw->getTachesParIDListe($liste, $page, $nbElements);
}
public function setDoneTaches()
/*
* \brief Permet de modifier l'état de taches
* \param[in] taches Toutes les tâches chargées
* \param[in] tachesFaites Toute les taches chargées faites
* \return Le numéro de la listes modifiée
*/
public function setDoneTaches($taches, $tachesFaites) : int
{
global $dsn, $loginDB, $pswdDB;
$gw = new TacheGateway(new Connection($dsn, $loginDB, $pswdDB));
$tacheID = null;
foreach($_REQUEST["exist"] as $tache)
foreach($taches as $tache)
{
if(in_array($tache, isset($_REQUEST["estFait"])?$_REQUEST["estFait"]:array() ))
if(in_array($tache, $tachesFaites))
{
if(!$gw->modifierDoneTache($tache, true))
{
@ -69,10 +112,15 @@ class ModelConnecte
}
$tacheID = $tache;
}
$_REQUEST["action"] = "seeList";
$_REQUEST["list"] = $gw->getListeParIDTache($tacheID);
return $gw->getListeParIDTache($tacheID);
}
public function createTodoList(string $nom)
/*
* \brief Créer une TodoList
* \param[in] nom nom de la TodoList à créer
* \return True si tout c'est bien passé. Sinon false.
*/
public function createTodoList(string $nom) : bool
{
global $dsn, $loginDB, $pswdDB;
$gw = new ListeGateway(new Connection($dsn, $loginDB, $pswdDB));
@ -85,17 +133,29 @@ class ModelConnecte
{
throw new Exception("Erreur avec la valeur enregistré du pseudonyme");
}
$gw->inserer2($nom, $pseudo);
return $gw->inserer2($nom, $pseudo);
}
public function createTask(string $nom, string $comm, int $list)
/*
* \brief Créer une tache
* \param[in] nom Nom de la tache
* \param[in] comm Commentaire de la tache
* \param[in] list ID de la liste à modifier
* \return True si tout c'est bien passé. Sinon false.
*/
public function createTask(string $nom, string $comm, int $list) : bool
{
global $dsn, $loginDB, $pswdDB;
$gw = new TacheGateway(new Connection($dsn, $loginDB, $pswdDB));
if(!$gw->insererSimple($nom, $comm, $list))
{
throw new Exception("Erreur lors de la création de la tache");
}
return $gw->insererSimple($nom, $comm, $list);
}
/*
* \brief Supprime une liste
* \param[in] listID ID de la liste a supprimer
* \return True en cas de succès. Sinon false
*/
public function supprimerListe(int $listID) : bool
{
global $dsn, $loginDB, $pswdDB;

Loading…
Cancel
Save