Merge branch 'master' of https://codefirst.iut.uca.fr/git/nathan.boileau/Scripted
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
c1c24a10e5
@ -0,0 +1 @@
|
|||||||
|
def ascii()
|
@ -0,0 +1,14 @@
|
|||||||
|
# Affiche Hello world !
|
||||||
|
|
||||||
|
print("Hello World !")
|
||||||
|
|
||||||
|
# Declaration de variable
|
||||||
|
|
||||||
|
num = 1
|
||||||
|
string = "Oi"
|
||||||
|
liste=[num,string]
|
||||||
|
|
||||||
|
print(liste)
|
||||||
|
|
||||||
|
|
||||||
|
# Utilisation de fonction
|
@ -1,182 +1,45 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Mettre le xdebug dans php.ini
|
|
||||||
|
|
||||||
class UserController
|
class UserController
|
||||||
{
|
{
|
||||||
private Connection $con;
|
private Connection $con;
|
||||||
|
|
||||||
function __construct() {
|
function __construct()
|
||||||
try{
|
{
|
||||||
echo "UserController";
|
try {
|
||||||
global $dsn, $rep, $vues, $error;
|
global $dsn, $rep, $vues, $error;
|
||||||
$this->con=new Connection($dsn);
|
$model = new UserModel();
|
||||||
echo "USconection";
|
$action = $_REQUEST['action'];
|
||||||
$action=$_REQUEST['action'];
|
switch ($action) {
|
||||||
switch($action) {
|
|
||||||
case NULL:
|
case NULL:
|
||||||
$this->goToHome();
|
$model->goToHome();
|
||||||
break;
|
|
||||||
case "signUp":
|
|
||||||
$this->signUp();
|
|
||||||
break;
|
|
||||||
case "login":
|
|
||||||
$this->login();
|
|
||||||
break;
|
break;
|
||||||
case "goToPresentation":
|
case "goToPresentation":
|
||||||
$this->goToPresentation();
|
$model->goToPresentation();
|
||||||
break;
|
break;
|
||||||
case "goToHome":
|
case "goToHome":
|
||||||
$this->goToHome();
|
$model->goToHome();
|
||||||
break;
|
|
||||||
case "goToLogin":
|
|
||||||
$this->goToLogin();
|
|
||||||
break;
|
|
||||||
case "goToSignUp":
|
|
||||||
$this->goToSignUp();
|
|
||||||
break;
|
break;
|
||||||
case "goToEnigme":
|
case "goToEnigme":
|
||||||
$this->goToEnigme();
|
$model->goToEnigme();
|
||||||
break;
|
break;
|
||||||
case "goToQueue":
|
case "goToQueue":
|
||||||
$this->goToQueue();
|
$model->goToQueue();
|
||||||
|
break;
|
||||||
|
case "logout":
|
||||||
|
$model->logout();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$error = "Action non valide";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} catch (PDOException $e)
|
} catch (PDOException $e) {
|
||||||
{
|
|
||||||
$error = $e->getMessage();
|
$error = $e->getMessage();
|
||||||
require ($rep.$vues['erreur']);
|
require($rep . $vues['erreur']);
|
||||||
}catch (Exception $e2)
|
} catch (Exception $e2) {
|
||||||
{
|
|
||||||
$error = $e2->getMessage();
|
$error = $e2->getMessage();
|
||||||
require ($rep.$vues['erreur']);
|
require($rep . $vues['erreur']);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function signUp() {
|
|
||||||
global $rep, $vues, $sel, $error;
|
|
||||||
try {
|
|
||||||
$gateway = new UtilisateurGateway($this->con);
|
|
||||||
$validation = new Validation();
|
|
||||||
if (! $validation->ValidateEmail($_REQUEST['email'])) {
|
|
||||||
$error = "Email invalides.";
|
|
||||||
throw (new Exception("Email non valide"));
|
|
||||||
}
|
|
||||||
if(! $validation->ValidateUsername($_REQUEST['username'])){
|
|
||||||
$error = "Nom d'utilisateur invalides. Il ne doit pas contenir de caractère spéciaux.";
|
|
||||||
throw(new Exception("Pseudo non valide"));
|
|
||||||
}
|
|
||||||
if(! $validation->ValidatePassword($_REQUEST['password'])){
|
|
||||||
$error = "Mots de passe invalides. Il ne doit pas dépasser 100 caractères.";
|
|
||||||
throw(new Exception("Mot de passe non valide"));
|
|
||||||
}
|
|
||||||
$j = $gateway->getUtilisateurByEmail($_REQUEST['email']);
|
|
||||||
if ($j->getEmail() != "null") {
|
|
||||||
$error = "Email déjà utilisé.";
|
|
||||||
throw (new Exception("Email déjà utilisé"));
|
|
||||||
}
|
|
||||||
$password = password_hash($_REQUEST['password'], PASSWORD_DEFAULT);
|
|
||||||
$estAdmin = $gateway->getEstAdminByEmail($_REQUEST['email']);
|
|
||||||
$Utilisateur = new Utilisateur($_REQUEST['email'], $_REQUEST['username'], $password, $estAdmin);
|
|
||||||
$gateway->insert($Utilisateur);
|
|
||||||
$_SESSION['connected'] = 'true';
|
|
||||||
$_SESSION['role'] = 'utilisateur';
|
|
||||||
require ($rep.$vues['main']);
|
|
||||||
}catch (PDOException $e)
|
|
||||||
{
|
|
||||||
$error = "Erreur de connexion à la base de données.";
|
|
||||||
require ($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
catch (Exception $e){
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private function login(){
|
|
||||||
global $rep, $vues, $sel, $error;
|
|
||||||
try {
|
|
||||||
$gateway = new UtilisateurGateway($this->con);
|
|
||||||
$Utilisateur = $gateway->getUtilisateurByEmail($_REQUEST['email']);
|
|
||||||
if ($Utilisateur->getEmail() == null){
|
|
||||||
$error = "Utilisateur non trouvé.";
|
|
||||||
throw new Exception("Utilisateur introuvable");
|
|
||||||
}
|
|
||||||
$mdp = $gateway->getMdpByEmail($_REQUEST['email']);
|
|
||||||
if (password_verify($mdp, $_REQUEST['password'])){
|
|
||||||
$error = "Mot de passe incorrect.";
|
|
||||||
throw new Exception("Mot de passe invalide");
|
|
||||||
}
|
|
||||||
$estAdmin =$gateway->getEstAdminByEmail($_REQUEST['email']);
|
|
||||||
if ($estAdmin == true) {
|
|
||||||
$_SESSION['role'] = "admin";
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$_SESSION['role'] = "utilisateur";
|
|
||||||
}
|
|
||||||
|
|
||||||
$_SESSION['connected'] = 'true';
|
|
||||||
require ($rep.$vues['main']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function goToPresentation() {
|
|
||||||
global $rep, $vues, $error;
|
|
||||||
try {
|
|
||||||
require ($rep.$vues['presentation']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
$error = "Erreur Inconnue";
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function goToHome() {
|
|
||||||
global $rep, $vues, $error;
|
|
||||||
try {
|
|
||||||
require ($rep.$vues['main']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
$error = "404";
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function goToLogin() {
|
|
||||||
global $rep, $vues, $error;
|
|
||||||
try {
|
|
||||||
require ($rep.$vues['login']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
$error = "404";
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function goToSignUp() {
|
|
||||||
global $rep, $vues, $error;
|
|
||||||
try {
|
|
||||||
require ($rep.$vues['signUp']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
$error = "404";
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function goToEnigme() {
|
|
||||||
global $rep, $vues, $error;
|
|
||||||
try {
|
|
||||||
require ($rep.$vues['enigme']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
$error = "404";
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function goToQueue() {
|
|
||||||
global $rep, $vues, $error;
|
|
||||||
try {
|
|
||||||
require ($rep.$vues['Queue']);
|
|
||||||
}catch (Exception $e){
|
|
||||||
$error = "404";
|
|
||||||
require($rep.$vues['erreur']);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class VisitorController
|
||||||
|
{
|
||||||
|
private Connection $con;
|
||||||
|
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
global $dsn, $rep, $vues, $error;
|
||||||
|
$model = new VisitorModel();
|
||||||
|
$action = $_REQUEST['action'];
|
||||||
|
switch ($action) {
|
||||||
|
case NULL:
|
||||||
|
$model->goToHome();
|
||||||
|
break;
|
||||||
|
case "signUp":
|
||||||
|
$model->signUp();
|
||||||
|
break;
|
||||||
|
case "login":
|
||||||
|
$model->login();
|
||||||
|
break;
|
||||||
|
case "goToHome":
|
||||||
|
$model->goToHome();
|
||||||
|
break;
|
||||||
|
case "goToLogin":
|
||||||
|
$model->goToLogin();
|
||||||
|
break;
|
||||||
|
case "goToSignUp":
|
||||||
|
$model->goToSignUp();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$error = "Action non valide";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
$error = $e->getMessage();
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
} catch (Exception $e2) {
|
||||||
|
$error = $e2->getMessage();
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class UtilisateurFactory
|
||||||
|
{
|
||||||
|
public static function createUtilisateur(array $results){
|
||||||
|
if ($results == null){
|
||||||
|
return new Utilisateur("null", "null", "null", false);
|
||||||
|
}
|
||||||
|
foreach($results as $row)
|
||||||
|
{
|
||||||
|
$email = $row['email'];
|
||||||
|
$pseudo=$row['pseudo'];
|
||||||
|
$mdp = $row['mdp'];
|
||||||
|
$estAdmin = $row['estAdmin'];
|
||||||
|
}
|
||||||
|
return new Utilisateur($email, $pseudo, $mdp, $estAdmin);
|
||||||
|
}
|
||||||
|
public static function createTabUtilisateur(array $results){
|
||||||
|
$tabUtilisateur=array();
|
||||||
|
foreach($results as $row)
|
||||||
|
{
|
||||||
|
$tabUtilisateur[]=new Utilisateur($row['email'], $row['pseudo'], $row['mdp'], $row['estAdmin']);
|
||||||
|
}
|
||||||
|
return $tabUtilisateur;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
class UserModel
|
||||||
|
{
|
||||||
|
|
||||||
|
private EnigmeGateway $enigme_gateway;
|
||||||
|
private PartieGateway $partie_gateway;
|
||||||
|
private UtilisateurGateway $utilisateur_gateway;
|
||||||
|
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
global $error, $view, $rep;
|
||||||
|
$this->enigme_gateway = new EnigmeGateway();
|
||||||
|
$this->partie_gateway = new PartieGateway();
|
||||||
|
$this->utilisateur_gateway = new UtilisateurGateway();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = $e->getMessage();
|
||||||
|
require($rep . $view['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function goToPresentation()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['presentation']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "Erreur Inconnue";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function goToHome()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['main']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "404";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function goToEnigme()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['enigme']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "404";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function goToQueue()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['Queue']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "404";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logout()
|
||||||
|
{
|
||||||
|
$_SESSION['role'] = 'visitor';
|
||||||
|
header('Location: index.php');
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,117 @@
|
|||||||
|
<?php
|
||||||
|
class VisitorModel
|
||||||
|
{
|
||||||
|
|
||||||
|
private EnigmeGateway $enigme_gateway;
|
||||||
|
private PartieGateway $partie_gateway;
|
||||||
|
private UtilisateurGateway $utilisateur_gateway;
|
||||||
|
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
global $error, $view, $rep;
|
||||||
|
$this->enigme_gateway = new EnigmeGateway();
|
||||||
|
$this->partie_gateway = new PartieGateway();
|
||||||
|
$this->utilisateur_gateway = new UtilisateurGateway();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = $e->getMessage();
|
||||||
|
require($rep . $view['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function signUp()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $sel, $error;
|
||||||
|
try {
|
||||||
|
$validation = new Validation();
|
||||||
|
if (!$validation->ValidateEmail($_REQUEST['email'])) {
|
||||||
|
$error = "Email invalides.";
|
||||||
|
throw (new Exception("Email non valide"));
|
||||||
|
}
|
||||||
|
if (!$validation->ValidateUsername($_REQUEST['username'])) {
|
||||||
|
$error = "Nom d'utilisateur invalides. Il ne doit pas contenir de caractère spéciaux.";
|
||||||
|
throw (new Exception("Pseudo non valide"));
|
||||||
|
}
|
||||||
|
if (!$validation->ValidatePassword($_REQUEST['password'])) {
|
||||||
|
$error = "Mots de passe invalides. Il ne doit pas dépasser 100 caractères.";
|
||||||
|
throw (new Exception("Mot de passe non valide"));
|
||||||
|
}
|
||||||
|
$j = $this->utilisateur_gateway->getUtilisateurByEmail($_REQUEST['email']);
|
||||||
|
if ($j->getEmail() != "null") {
|
||||||
|
$error = "Email déjà utilisé.";
|
||||||
|
throw (new Exception("Email déjà utilisé"));
|
||||||
|
}
|
||||||
|
$password = password_hash($_REQUEST['password'] . $sel, PASSWORD_DEFAULT);
|
||||||
|
$Utilisateur = new Utilisateur($_REQUEST['email'], $_REQUEST['username'], $password, false);
|
||||||
|
$this->utilisateur_gateway->insert($Utilisateur);
|
||||||
|
$_SESSION['role'] = 'user';
|
||||||
|
require($rep . $vues['main']);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
$error = "Erreur de connexion à la base de données.";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = $e->getMessage();
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $sel, $error;
|
||||||
|
try {
|
||||||
|
$Utilisateur = $this->utilisateur_gateway->getUtilisateurByEmail($_REQUEST['email']);
|
||||||
|
if ($Utilisateur->getEmail() == "null") {
|
||||||
|
$error = "Utilisateur non trouvé.";
|
||||||
|
throw new Exception("Utilisateur introuvable");
|
||||||
|
}
|
||||||
|
$mdp = $this->utilisateur_gateway->getMdpByEmail($_REQUEST['email']);
|
||||||
|
if (password_verify($mdp, $_REQUEST['password'] . $sel)) {
|
||||||
|
$error = "Mot de passe incorrect.";
|
||||||
|
throw new Exception("Mot de passe invalide");
|
||||||
|
}
|
||||||
|
$estAdmin = $this->utilisateur_gateway->getEstAdminByEmail($_REQUEST['email']);
|
||||||
|
if ($estAdmin == true) {
|
||||||
|
$_SESSION['role'] = "admin";
|
||||||
|
} else {
|
||||||
|
$_SESSION['role'] = "user";
|
||||||
|
}
|
||||||
|
|
||||||
|
$_SESSION['connected'] = 'true';
|
||||||
|
require($rep . $vues['main']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function goToHome()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['main']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "404";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function goToLogin()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['login']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "404";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function goToSignUp()
|
||||||
|
{
|
||||||
|
global $rep, $vues, $error;
|
||||||
|
try {
|
||||||
|
require($rep . $vues['signUp']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$error = "404";
|
||||||
|
require($rep . $vues['erreur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
@ -0,0 +1,12 @@
|
|||||||
|
//~ Function that test the user code
|
||||||
|
|
||||||
|
async function submit(){
|
||||||
|
var test = editor.getValue();
|
||||||
|
exec("print('Hello World !')", "code");
|
||||||
|
exec(test, "solution");
|
||||||
|
result.innerHTML = "Test en cours...";
|
||||||
|
await new Promise(r => setTimeout(r, 1500));
|
||||||
|
check();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
async function submit(){
|
||||||
|
var test = editor.getValue();
|
||||||
|
exec("print([1,'Oui'])", "code");
|
||||||
|
exec(test, "solution");
|
||||||
|
result.innerHTML = "Test en cours...";
|
||||||
|
await new Promise(r => setTimeout(r, 1500));
|
||||||
|
check();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue