You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
6.9 KiB
216 lines
6.9 KiB
<?php
|
|
|
|
class ControleurVisiteur {
|
|
|
|
public function __construct() {
|
|
global $rep,$vues,$dataView,$styles,$assets;
|
|
$vues_erreur= array();
|
|
try{
|
|
$action = $_REQUEST['action']??null;
|
|
switch($action){
|
|
case NULL:
|
|
$this->reinit();
|
|
break;
|
|
case "goHome":
|
|
$this->reinit();
|
|
break;
|
|
case 'accessConnectionPage':
|
|
require($rep.$vues['connection']);
|
|
break;
|
|
case "accessInscription":
|
|
require($rep.$vues['inscription']);
|
|
break;
|
|
case "accessCreationListePage":
|
|
require($rep.$vues['creationListe']);
|
|
break;
|
|
case "accessCreationTachePage":
|
|
$dataView=$_POST['liste'];
|
|
require($rep.$vues['creationTache']);
|
|
break;
|
|
case "addTache":
|
|
$this->addTache($vues_erreur);
|
|
break;
|
|
case "accessListInfos":
|
|
$this->accessListInfos($vues_erreur);
|
|
break;
|
|
case "delTache":
|
|
$this->delTache($vues_erreur);
|
|
break;
|
|
case "changeCompletedTache":
|
|
$this->changeCompletedTache($vues_erreur);
|
|
break;
|
|
case "connection":
|
|
$this->connection($vues_erreur);
|
|
break;
|
|
case "inscription":
|
|
$this->inscription($vues_erreur);
|
|
case "creerListe":
|
|
$this->creerListe($vues_erreur);
|
|
break;
|
|
case "delListe":
|
|
$this->delListe($vues_erreur);
|
|
break;
|
|
case "deconnection":
|
|
$this->deconnection($vues_erreur);
|
|
break;
|
|
default :
|
|
$vues_erreur[]="Erreur innatendue !!!";
|
|
require($rep.$vues['acceuil']);
|
|
}
|
|
} catch(PDOException $e){
|
|
$dataView[]="Erreur inatendue";
|
|
require(__DIR__.'/../vues/erreur.php');
|
|
}
|
|
exit(0);
|
|
}
|
|
|
|
|
|
function deconnection($vues_erreur){
|
|
global $rep, $vues, $dataView;
|
|
$model = new UserModel();
|
|
$retour = $model->deconnection();
|
|
$_REQUEST['action']=null;
|
|
$control= new ControleurVisiteur();
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
public function reinit(){
|
|
global $rep,$vues,$dataView,$styles;
|
|
$model = new ListeModel();
|
|
$dataView = $model->pullPublicLists();
|
|
require($rep.$vues['acceuil']);
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
public function accessListInfos($vues_erreur){
|
|
global $rep,$vues,$dataView;
|
|
$idListe=$_POST['liste'];
|
|
$model = new ListeModel();
|
|
$dataView = $model->pullListById($idListe);
|
|
require($rep.$vues['infosListe']);
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
public function addTache($vues_erreur){
|
|
global $rep,$vues,$dataView;
|
|
$nom=$_POST['name'];
|
|
$idListe=$_POST['liste'];
|
|
$vues_erreur = Validation::val_intitule($nom, $vues_erreur);
|
|
if(!empty($vues_erreur)){
|
|
require($rep.$vues['creationTache']);
|
|
}
|
|
else{
|
|
$model = new TacheModel();
|
|
$model->addTache($nom,$idListe);
|
|
$_REQUEST['action']="accessListInfos";
|
|
$this->accessListInfos($vues_erreur);
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
}
|
|
|
|
public function delTache($vues_erreur){
|
|
global $rep,$vues,$dataView;
|
|
$idTache=$_POST['tache'];
|
|
$model= new TacheModel();
|
|
$model->delTache($idTache);
|
|
$_REQUEST['action']="accessListInfos";
|
|
$this->accessListInfos($vues_erreur);
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
public function changeCompletedTache($vues_erreur){
|
|
global $rep,$vues,$dataView;
|
|
$idTache=$_POST['tache'];
|
|
$model = new TacheModel();
|
|
$model->changeCompletedTache($idTache);
|
|
$_REQUEST['action']="accessListInfos";
|
|
$this->accessListInfos($vues_erreur);
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
public function connection(array $vues_erreur){
|
|
global $rep,$vues,$dataView;
|
|
$usrname=$_POST['login'];
|
|
$pwd=$_POST['mdp'];
|
|
$vues_erreur=Validation::val_connexion($usrname,$pwd,$vues_erreur);
|
|
if(!empty($vues_erreur)){
|
|
require($rep.$vues['connection']);
|
|
}
|
|
$model= new UserModel();
|
|
if($model->existUser($usrname)){
|
|
if(password_verify($pwd,$model->getHashedPassword($usrname))){
|
|
$model->connexion($usrname);
|
|
$_REQUEST['action']=null;
|
|
$this->reinit();
|
|
$vues_erreur= array();
|
|
}
|
|
else{
|
|
$vues_erreur =array('username'=>$usrname,'password'=>$pwd);
|
|
require($rep.$vues['connection']);
|
|
}
|
|
}
|
|
else{
|
|
$vues_erreur =array('username'=>$usrname,'password'=>$pwd);
|
|
require($rep.$vues['connection']);
|
|
}
|
|
}
|
|
|
|
public function inscription(array $vues_erreur){
|
|
global $rep,$vues,$dataView;
|
|
$usrname=$_POST['username'];
|
|
$pwd=$_POST['password'];
|
|
$confirm=$_POST['confirmpassword'];
|
|
$model = new UserModel();
|
|
$vues_erreur=Validation::val_inscription($usrname,$pwd,$confirm,$vues_erreur);
|
|
if($model->existUser($usrname)){
|
|
$vues_erreur[]="Username already taken";
|
|
}
|
|
if(empty($vues_erreur)){
|
|
$hash= password_hash($pwd,PASSWORD_DEFAULT);
|
|
$model->inscription($usrname,$hash);
|
|
$vues_erreur= array();
|
|
}
|
|
else{
|
|
require($rep.$vues['inscription']);
|
|
}
|
|
|
|
$_REQUEST['action']=null;
|
|
$this->reinit();
|
|
}
|
|
|
|
public function creerListe(array $vues_erreur){
|
|
global $rep, $vues;
|
|
$nom=$_POST['name'];
|
|
$vues_erreur=Validation::val_intitule($nom, $vues_erreur);
|
|
if(!empty($vues_erreur)){
|
|
require($rep.$vues['creationListe']);
|
|
}
|
|
else{
|
|
$model = new ListeModel();
|
|
if(isset($_SESSION['login'])){
|
|
$private=$_POST['private'];
|
|
$model->creerListe($nom,$private);
|
|
}
|
|
else{
|
|
$model->creerListe($nom,null);
|
|
}
|
|
$_REQUEST['action']=null;
|
|
$this->reinit();
|
|
$vues_erreur= array();
|
|
}
|
|
|
|
}
|
|
|
|
public function delListe(array $vues_erreur){
|
|
global $rep, $vues;
|
|
$idListe=$_POST['liste'];
|
|
$model = new ListeModel();
|
|
$model->delListe($idListe);
|
|
$_REQUEST['action']=null;
|
|
$this->reinit();
|
|
$vues_erreur= array();
|
|
}
|
|
}
|
|
|
|
?>
|