forked from tom.biard/ScienceQuest
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.
96 lines
3.1 KiB
96 lines
3.1 KiB
<?php
|
|
|
|
namespace controller;
|
|
|
|
use config\Validation;
|
|
use Exception;
|
|
use model\ConfigurationJeu;
|
|
use model\Connection;
|
|
use model\GameGateway;
|
|
use model\Joueur;
|
|
use model\MdlDifficulte;
|
|
use model\MdlJeu;
|
|
use model\MdlScientifique;
|
|
use model\PseudoDejaPrisException;
|
|
use model\ValidationException;
|
|
use model\MdlUser;
|
|
use model\MdlAdmin;
|
|
use model\LoginException;
|
|
use model\Utilisateur;
|
|
|
|
class UserController extends InviteController {
|
|
|
|
|
|
public function listerLesScientifiquesDecouverts() {
|
|
|
|
}
|
|
|
|
public function afficherDetailScientifique() {
|
|
|
|
}
|
|
|
|
public function login() {
|
|
global $twig;
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
Validation::valUserLogin($_REQUEST['login'], $dVueErreur);
|
|
$ug = new MdlUser();
|
|
if ($ug->login($_REQUEST['login'], $_REQUEST['password'])) {
|
|
$_SESSION['pseudo'] = $_REQUEST['login'];
|
|
$_SESSION['idUser'] = true;
|
|
$_SESSION['isLogged'] = true;
|
|
$_SESSION['role'] = $ug->getFromEmail($_REQUEST['login']);
|
|
header("Location: .");
|
|
} else {
|
|
//voir si c'est un admin
|
|
$ug = new MdlAdmin();
|
|
if ($ug->login($_REQUEST['login'], $_REQUEST['password'])) {
|
|
$_SESSION['pseudo'] = $_REQUEST['login'];
|
|
$_SESSION['isAdmin'] = true;
|
|
$_SESSION['isLogged'] = true;
|
|
unset($_SESSION['role']);
|
|
header("Location: .");
|
|
} else {
|
|
$dVueErreur[] = "Connexion échouée";
|
|
throw new LoginException("Connexion err");
|
|
}
|
|
}
|
|
} else {
|
|
echo $twig->render('login.html');
|
|
}
|
|
}
|
|
|
|
public function register() {
|
|
global $twig, $dVueErreur;
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
if($_REQUEST['password']!=$_REQUEST['cpassword']){
|
|
$dVueErreur[]="Mots de passe différents.";
|
|
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
|
|
return;
|
|
}
|
|
$ug = new MdlUser();
|
|
try{
|
|
if($ug->register($_REQUEST['login'], $_REQUEST['password'])){
|
|
header('Location: login');
|
|
} else {
|
|
$dVueErreur[]="Erreur de création de compte. Le compte doit déjà exister.";
|
|
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
|
|
}
|
|
} catch (PseudoDejaPrisException $ex){
|
|
$dVueErreur[]="Erreur de création de compte. Le compte existe déjà.";
|
|
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
|
|
}catch(Exception $ex){
|
|
$dVueErreur[]="Erreur de création de compte.";
|
|
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
|
|
}
|
|
|
|
} else {
|
|
echo $twig->render('register.html');
|
|
}
|
|
}
|
|
|
|
public function logout(){
|
|
session_destroy();
|
|
$_SESSION=[];
|
|
header("Location: .");
|
|
}
|
|
} |