diff options
| author | Debulois <quentin@debulois.fr> | 2022-03-31 14:56:45 +0200 |
|---|---|---|
| committer | Debulois <quentin@debulois.fr> | 2022-03-31 14:56:45 +0200 |
| commit | b637d625216e50602d0bde8a544c281ca00af5fa (patch) | |
| tree | 5e44ad1048f8a3583cc854fe3bc21086ede4d88a /Core | |
| parent | c9d4c87b21f1050a780f5296961d24bd17c9cdc8 (diff) | |
Grosse maj encore avec ajout de fonctionnalités dans l'admin principalement et grosse remise en page / rennomage et preparation pour retravailler le CSS
Diffstat (limited to 'Core')
| -rw-r--r-- | Core/Functions/func_admin.php | 81 | ||||
| -rw-r--r-- | Core/Functions/func_info.php | 41 | ||||
| -rw-r--r-- | Core/Functions/func_language.php | 22 | ||||
| -rw-r--r-- | Core/Functions/func_login.php | 78 | ||||
| -rw-r--r-- | Core/Functions/func_logout.php | 40 | ||||
| -rw-r--r-- | Core/Functions/func_mission.php | 54 | ||||
| -rw-r--r-- | Core/Functions/func_myMission.php | 58 | ||||
| -rw-r--r-- | Core/Functions/func_register.php | 30 | ||||
| -rw-r--r-- | Core/Functions/func_sanitize.php | 17 | ||||
| -rw-r--r-- | Core/Functions/func_search.php | 81 | ||||
| -rw-r--r-- | Core/wrapper.php | 310 |
11 files changed, 812 insertions, 0 deletions
diff --git a/Core/Functions/func_admin.php b/Core/Functions/func_admin.php new file mode 100644 index 0000000..16cf7c0 --- /dev/null +++ b/Core/Functions/func_admin.php @@ -0,0 +1,81 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonctions d'administration du site # +// # # +// ############################################################################ + +function admin_user_del ($userId) { + $dbadmin = new DbAdmin; + $deleted = $dbadmin->del_user_by_userid($userId); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($deleted) { + $message = ["adminDelUser", "success"]; + } else { + $message = ["adminDelUser", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function admin_job_add($jobNameEn, $jobNameFr) { + $dbadmin = new DbAdmin; + // https://www.w3schools.com/php/func_string_strtolower.asp + $added = $dbadmin->register_job_category( + ucwords(strtolower($jobNameEn)), + ucwords(strtolower($jobNameFr)) + ); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($added) { + $message = ["adminAddJob", "success"]; + } else { + $message = ["adminAddJob", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function admin_job_del($jobId) { + $dbadmin = new DbAdmin; + $deleted = $dbadmin->del_job_category_by_jobid($jobId); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($deleted) { + $message = ["adminDelJob", "success"]; + } else { + $message = ["adminDelJob", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function admin_mission_del($missionId) { + $dbadmin = new DbAdmin; + $deleted = $dbadmin->del_mission_by_missionid($missionId); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($deleted) { + $message = ["adminDelMission", "success"]; + } else { + $message = ["adminDelMission", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_info.php b/Core/Functions/func_info.php new file mode 100644 index 0000000..8464fe1 --- /dev/null +++ b/Core/Functions/func_info.php @@ -0,0 +1,41 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction de modifications des informations de l'utilisateur # +// # par ID # +// # # +// ############################################################################ + +function info_update_user_infos($userInfos, $userId, $userStatus) { + $dbuser = new DbUser; + $dbsearch = new DbSearch; + + switch ($userStatus) { + case 1: + $isPro = true; + break; + default: + $isPro = false; + break; + } + + if ($isPro) { + $userJobs = $dbsearch->get_pro_job_by_proid($userId); + $userJobsId = []; + for ($i = 0; $i < count($userJobs); $i++) { + array_push($userJobsId, $userJobs[$i]["jobCategoryId"]); + } + $dbuser->update_user_infos($userInfos, $userId, $isPro, $userJobsId); + } else { + $dbuser->update_user_infos($userInfos, $userId, $isPro); + } + + // Redirection vers message avec l'index du message à afficher. + $message = ["infosUpdate", "success"]; + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_language.php b/Core/Functions/func_language.php new file mode 100644 index 0000000..a1c1498 --- /dev/null +++ b/Core/Functions/func_language.php @@ -0,0 +1,22 @@ +<?php + +// ############################################################################ +// # # +// # Description: Modification de la variable lang de la session # +// # qui sert à définir quel dossier de language importer # +// # # +// ############################################################################ + +function language_set($language) { + $_SESSION["lang"] = $language; + + // Redirection vers la page actuelle avec la langue à affiche. + if ($_SESSION["src"] == "index") { + header("Location: /".$_SESSION["src"].".php"); + } else { + header("Location: /Templates/".$_SESSION["src"].".php"); + } + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_login.php b/Core/Functions/func_login.php new file mode 100644 index 0000000..6456ba1 --- /dev/null +++ b/Core/Functions/func_login.php @@ -0,0 +1,78 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction de connection, par combinaison de mail & mdp ou # +// # par un cookie dans lequel est stocké l'email et une chaine # +// # de caractère aléatoire valable pour une seule tentative. # +// # # +// ############################################################################ + +function login($cookie, $email = null, $pass = null, $remember = 0) { + // Instanciation de la gestion de la BDD utilisateur. + $dbuser = new DbUser; + + // On vérifie si la connection se fait via le formulaire de connection ou par cookie + if (!$cookie) { + $userId = $dbuser->check_user_credential($email, $pass); + // ou par cookie. + } else { + // On essaie une fois. + $userId = $dbuser->check_token_autologin($cookie[0], $cookie[1]); + // Et on le supprime. + $dbuser->del_token_autologin($cookie[0]); + } + + // Si on a un résultat valide. + if ($userId) { + $dbsearch = new DbSearch; + // LoggedIn devien "true". + $_SESSION["loggedIn"] = "1"; + // et on remplie les variables de la session avec les infos de l'utilisateur. + $userInfo = $dbsearch->get_user_account_by_userid($userId); + foreach ($userInfo as $key => $value) { + $_SESSION[$key] = $value; + } + + // Si était coché remember me ou que la connection s'est faite via cookie, + // on en génère un nouveau. + if ($remember || $cookie) { + $name = "autoLogin"; + // On génère une chaine de caractère aléatoire en supprimant les caractères spéciaux de base64. + $token = str_replace(["+", "/", "="], "", base64_encode(random_bytes(32))); + // On update le nouveau token. + $dbuser->update_token_autologin($_SESSION["email"], $token); + // Enfin on place l'ensemble sur le navigateur du client codé en base64. + setcookie($name, + base64_encode(json_encode(array($_SESSION["email"], $token))), + time() + (86400 * 7), + "/" + ); + } + + // On sélectionne le bon message en fonction du type de connection. + if (!$cookie) { + $message = ["login", "success"]; + } else { + $message = ["loginCookie", "success"]; + } + } else { + // Si la connection a échoué. + if (!$cookie) { + $message = ["login", "fail"]; + // Si la connection à échoué par cookie. + } else { + // Suppression du cookie. + unset($_COOKIE["autoLogin"]); + setcookie("autoLogin", "", time() - 3600, "/"); + $message = ["loginCookie", "fail"]; + } + } + + // On redirige vers message. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_logout.php b/Core/Functions/func_logout.php new file mode 100644 index 0000000..dd6a411 --- /dev/null +++ b/Core/Functions/func_logout.php @@ -0,0 +1,40 @@ +<?php + +// ############################################################################ +// # # +// # Decription: Fonction pour se déconnecter # +// # # +// ############################################################################ + +function logout() { + // On instancie les méthodes de gestion de la BDD. + $dbuser = new DbUser; + + // On récupère la session + session_start(); + // On conserve la langue qui était sélectionnée. + $lang = $_SESSION["lang"]; + // On détruit la session. + session_destroy(); + + // On supprime le token d'auto-connection dans la BDD. + $dbuser->del_token_autologin($_SESSION["email"]); + // Et le cookie + if (isset($_COOKIE["autoLogin"])) { + unset($_COOKIE["autoLogin"]); + setcookie("autoLogin", "", time() - 3600, "/"); + } + + // Et on en redémarre une nouvelle. + session_start(); + $_SESSION["loggedIn"] = "0"; + $_SESSION["lang"] = $lang; + + // Enfin on redirige avec le bon message. + $message = ["logout", "success"]; + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_mission.php b/Core/Functions/func_mission.php new file mode 100644 index 0000000..9d009c5 --- /dev/null +++ b/Core/Functions/func_mission.php @@ -0,0 +1,54 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction d'enregistrement d'une mission # +// # # +// ############################################################################ + +function mission_initiate($proId) { + $dbsearch = new DbSearch; + + $_SESSION["missionInitiate"] = [ + "proId" => $proId, + "proJobs" => $dbsearch->get_pro_job_by_proid($proId) + ]; + header("Location: /Templates/mission.php"); + die(); +} + +function mission_register($subject, $clientId, $proId, $jobId) { + $dbmission = new DbMission; + $registered = $dbmission->register_mission($subject, $clientId, $proId, $jobId); + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($registered) { + $message = ["missionRegister", "success"]; + } else { + $message = ["missionRegister", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function mission_review($missionId, $review, $note) { + $dbmission = new DbMission; + $reviewed = $dbmission->review_mission($missionId, $review, $note); + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($reviewed) { + $message = ["missionReview", "success"]; + } else { + $message = ["missionReview", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_myMission.php b/Core/Functions/func_myMission.php new file mode 100644 index 0000000..3531c48 --- /dev/null +++ b/Core/Functions/func_myMission.php @@ -0,0 +1,58 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction de gesrtion de ses missions # +// # # +// ############################################################################ +function mymission_accept_mission($missionId) { + $dbmission = new DbMission; + $accepted = $dbmission->accept_mission_by_missionid($missionId); + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($accepted) { + $message = ["missionAccepted", "success"]; + } else { + $message = ["missionAccepted", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function mymission_complete_mission($missionId, $userStatus) { + $dbmission = new DbMission; + + switch ($userStatus) { + // Pro + case 1: + $validated = $dbmission->validate_mission_pro_by_missionid($missionId); + break; + // Client + case 2: + $validated = $dbmission->validate_mission_client_by_missionid($missionId); + $_SESSION["missionCompleted"] = [ + "missionId" => $missionId + ]; + header("Location: /Templates/mission.php"); + die(); + default: + break; + } + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($validated) { + $message = ["missionValidated", "success"]; + } else { + $message = ["missionValidated", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_register.php b/Core/Functions/func_register.php new file mode 100644 index 0000000..b7c02cd --- /dev/null +++ b/Core/Functions/func_register.php @@ -0,0 +1,30 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction d'inscription d'un nouvel utilisateur # +// # # +// ############################################################################ + +function register($email, $password, $userStatus) { + $dbuser = new DbUser; + + $registered = $dbuser->register_user($email, + $password, + $userStatus + ); + + // Sélection du message à afficher en fonction de la réussite de l'inscription. + if ($registered) { + $message = ["userAdd", "success"]; + } else { + $message = ["userAdd", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_sanitize.php b/Core/Functions/func_sanitize.php new file mode 100644 index 0000000..afee91c --- /dev/null +++ b/Core/Functions/func_sanitize.php @@ -0,0 +1,17 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction simple pour nettoyer un peu la data # +// # # +// ############################################################################ + +function sanitize($data) { + // Retrait des espaces en début et fin de la variable. + $trimmed = trim($data); + // Retrait des charactères HTML (XSS). + $htmlChars = htmlspecialchars($trimmed); + return $htmlChars; +} + +?>
\ No newline at end of file diff --git a/Core/Functions/func_search.php b/Core/Functions/func_search.php new file mode 100644 index 0000000..69740da --- /dev/null +++ b/Core/Functions/func_search.php @@ -0,0 +1,81 @@ +<?php + +// ############################################################################ +// # # +// # Description: Fonction pour rechercher les consultants # +// # # +// ############################################################################ + +function search($request, $isResearch) { + // Instanciation des méthodes de recherches de la BDD. + $dbsearch = new DbSearch; + $dbmission = new DbMission; + + // Si c'est une recherche. + if ($isResearch) { + switch ($isResearch) { + case 1: + $result = $dbsearch->get_pro_info_by_lastname($request); + break; + case 2: + $result = $dbsearch->get_all_pro_by_jobid($request); + break; + default: + break; + } + + // Pour chaque utilisateur avec un nom qui "match". + for ($i = 0; $i < count($result); $i++) { + $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($result[$i]["userId"]); + // récupération du nombre de mission effectué. + $numberMission = $dbmission->count_pro_missions_by_proid($result[$i]["userId"]); + $result[$i]["numberOfMissions"] = $numberMission[0][0]; + // récupération des notes de l'utilisateur. + $allNotes = $dbsearch->get_pro_note_by_proid($result[$i]["userId"]); + // Pour chaque note on la "push" (ajoute) dans une liste. + $notes = array(); + for ($j = 0; $j < count($allNotes); $j++) { + if ($allNotes[$j][0]) { + array_push($notes, $allNotes[$j][0]); + } + } + + // On fait la moyenne des notes, + // et pour les étoiles on "coupe" tout ce qui est après la virgule en castant en "int". + if ($notes) { + $average = array_sum($notes) / count($notes); + $result[$i]["note"] = round($average, 2); + $result[$i]["star"] = (int)$average; + // Si il n'y a pas encore de note. + } else { + $result[$i]["note"] = 0; + $result[$i]["star"] = 0; + } + } + // Si c'est "plus d'info" et non une recherche. + } else { + $result = $dbsearch->get_user_info_by_userid($request); + for ($i = 0; $i < count($result); $i++) { + $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($request); + } + } + + // Redirection vers l'index avec le "payload" (contenu) en fonction du type de recherche. + if ($isResearch) { + $search = array( + "result" => $result, + "isResearch" => true + ); + } else { + $search = array( + "result" => $result, + "isResearch" => false + ); + } + $_SESSION["search"] = $search; + + header("Location: /index.php#separator2"); + die(); +} + +?>
\ No newline at end of file diff --git a/Core/wrapper.php b/Core/wrapper.php new file mode 100644 index 0000000..89e7b96 --- /dev/null +++ b/Core/wrapper.php @@ -0,0 +1,310 @@ +<?php + +// ############################################################################# +// # # +// # Description: Le wrapper est le fichier qui fait le joint avec les # +// # fonctions PHP .Son role est de filtrer les données recus # +// # et de déclencher la bonne fonction. Selon la page qui # +// # l'appelle, j'ai voulu créer ce système car c'est une # +// # solution que j'ai imaginé pour rediréger tout mes # +// # formulaires vers une page unique. # +// # # +// ############################################################################# + +// Import de toutes les fonctions et des méthodes pour gérer la BDD. +require_once(dirname( __FILE__ )."./../Database/meth_dbuser.php"); +require_once(dirname( __FILE__ )."./../Database/meth_dbadmin.php"); +require_once(dirname( __FILE__ )."./../Database/meth_dbsearch.php"); +require_once(dirname( __FILE__ )."./../Database/meth_dbmission.php"); +require_once(dirname( __FILE__ )."./Functions/func_info.php"); +require_once(dirname( __FILE__ )."./Functions/func_admin.php"); +require_once(dirname( __FILE__ )."./Functions/func_login.php"); +require_once(dirname( __FILE__ )."./Functions/func_logout.php"); +require_once(dirname( __FILE__ )."./Functions/func_search.php"); +require_once(dirname( __FILE__ )."./Functions/func_mission.php"); +require_once(dirname( __FILE__ )."./Functions/func_register.php"); +require_once(dirname( __FILE__ )."./Functions/func_language.php"); +require_once(dirname( __FILE__ )."./Functions/func_sanitize.php"); +require_once(dirname( __FILE__ )."./Functions/func_myMission.php"); +session_start(); + +// Si la session existe et que la variable src est bien présente. +// Ensuite on redirige en fonction de la varaible "src" de la session +// et on vérifie que la data nécessaire est bien présente. +// Sinon: raise 404 +if (isset($_SESSION["src"])) { +// **************************************************************************** +// SANITIZE +// **************************************************************************** + // Avant toutes choses, on nettoie la data reçue. + if (isset($_POST)) { + foreach ($_POST as $key => $value) { + if ($key !== "password") { + $_POST[$key] = sanitize($value); + } + } + } + + +// **************************************************************************** +// LANGUE +// **************************************************************************** + // Condition pour le changement de la langue + if (isset($_POST["langSel"]) + && ($_POST["langSel"] == "en" + || $_POST["langSel"] == "fr") + ) { + language_set($_POST["langSel"]); + + +// **************************************************************************** +// RECHERCHE +// **************************************************************************** + // Condition pour une recherche +} elseif ($_SESSION["src"] == "index" + && (isset($_POST["moreInfoProId"]) && $_POST["moreInfoProId"] !== "") + || (isset($_POST["searchByName"]) && $_POST["searchbyName"] !== "") + || (isset($_POST["searchByJob"]) && $_POST["searchbyJob"] !== "") + ) { + + if ($_POST["moreInfoProId"]) { + search($_POST["moreInfoProId"], 0); + + } elseif ($_POST["searchByName"]) { + search($_POST["searchByName"], 1); + + } elseif ($_POST["searchByJob"]) { + search($_POST["searchByJob"], 2); + + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// INSCRIPTION +// **************************************************************************** + // Condition pour une inscription + } elseif ($_SESSION["src"] == "register" + && isset($_POST["email"], + $_POST["password"], + $_POST["userStatus"] + ) + && $_POST["email"] !== "" + && $_POST["password"] !== "" + ) { + register($_POST["email"], + $_POST["password"], + $_POST["userStatus"] + ); + + +// **************************************************************************** +// CONNECTION SANS ET AVEC COOKIE +// **************************************************************************** + } elseif ($_SESSION["src"] == "login" + && isset($_POST["email"], $_POST["password"]) + && $_POST["email"] !== "" + && $_POST["password"] !== "" + ) { + if (isset($_POST["rememberMe"]) && $_POST["rememberMe"] == "on") { + $_POST["rememberMe"] = 1; + } else { + $_POST["rememberMe"] = 0; + } + login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]); + + } elseif ($_SESSION["src"] == "autoLogin" + && isset($_COOKIE["autoLogin"]) + && $_SESSION["loggedIn"] + ) { + // Si connection par cookie, on le décode avant de le passer à la fonction. + login(json_decode(base64_decode($_COOKIE["autoLogin"]))); + + +// **************************************************************************** +// DECONNECTION +// **************************************************************************** + } elseif ($_SESSION["src"] == "logout" + && isset($_SESSION["loggedIn"]) + && $_SESSION["loggedIn"] + ) { + logout(); + + +// **************************************************************************** +// MODIFICATION DES INFOS UTILISATEUR +// **************************************************************************** + // Condition pour une modification des infos + } elseif ($_SESSION["src"] == "userInfo" + // Vérification des données si client + && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"], + $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"], + $_POST["adress"], $_POST["zipCode"], $_POST["city"] + ) + && $_SESSION["userStatus"] == 2 + && $_POST["lastname"] !== "" && $_POST["firstname"] !== "" + && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== "" + && $_POST["zipCode"] !== "" && $_POST["city"] !== "" + // Ou si pro + || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"], + $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"], + $_POST["adress"], $_POST["zipCode"], $_POST["city"], $_POST["jobs"], + $_POST["degree"], $_POST["capability"], $_POST["description"] + ) + && $_SESSION["userStatus"] == 1 + && $_POST["lastname"] !== "" && $_POST["firstname"] !== "" + && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== "" + && $_POST["zipCode"] !== "" && $_POST["city"] !== "" + && $_POST["degree"] !== "" && $_POST["capability"] !== "" + && $_POST["description"] !== "" + ) + ) { + info_update_user_infos($_POST, $_SESSION["userId"], $_SESSION["userStatus"]); + + +// **************************************************************************** +// MISSION - MANDATER, ENREGISTRER UNE REQUETE, VALIDER ET AVIS +// **************************************************************************** + // mandater une mission + } elseif ($_SESSION["src"] == "index" + && (isset($_POST["mandateProId"]) && $_POST["mandateProId"] !== "") + ) { + mission_initiate($_POST["mandateProId"]); + + } elseif ($_SESSION["src"] == "mission" + && isset($_SESSION["loggedIn"], $_SESSION["userStatus"], + $_POST["missionSubject"], $_POST["missionJob"], + $_POST["missionProId"] + ) + && $_SESSION["loggedIn"] + && $_SESSION["userStatus"] == 2 + && $_POST["missionSubject"] !== "" + && $_POST["missionJob"] !== "" + && $_POST["missionProId"] !== "" + ) { + mission_register($_POST["missionSubject"], + $_SESSION["userId"], + $_POST["missionProId"], + $_POST["missionJob"] + ); + + } elseif ($_SESSION["src"] == "mission" + && isset($_SESSION["loggedIn"], $_SESSION["userStatus"], + $_POST["missionCompletedId"], $_POST["review"], + $_POST["note"] + ) + && $_SESSION["loggedIn"] + && $_SESSION["userStatus"] == 2 + && $_POST["missionCompletedId"] !== "" + && $_POST["review"] !== "" + && $_POST["note"] !== "" + ) { + mission_review($_POST["missionCompletedId"], + $_POST["review"], + $_POST["note"] + ); + + +// **************************************************************************** +// GESTION DE SES MISSIONS +// **************************************************************************** + } elseif ($_SESSION["src"] == "myMission" + && isset($_SESSION["loggedIn"], + $_SESSION["userStatus"], + ) + && ($_SESSION["userStatus"] == 1 + || $_SESSION["userStatus"] == 2 + ) + ) { + + if (isset($_POST["acceptedMissionId"]) + && $_POST["acceptedMissionId"] !== "" + ) { + mymission_accept_mission($_POST["acceptedMissionId"]); + + } elseif (isset($_POST["validatedMissionId"], $_SESSION["userStatus"]) + && $_POST["validatedMissionId"] !== "" + && ($_SESSION["userStatus"] == 1 + ||$_SESSION["userStatus"] == 2 + ) + ) { + mymission_complete_mission($_POST["validatedMissionId"], $_SESSION["userStatus"]); + + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// ADMINISTRATION +// **************************************************************************** + // Condition pour l'administration du site + } elseif ($_SESSION["src"] == "admin" + && isset($_SESSION["loggedIn"], + $_SESSION["userStatus"] + ) + && $_SESSION["loggedIn"] + && $_SESSION["userStatus"] == 0 + && (isset($_POST["delUserId"]) + || isset($_POST["addJobNameEn"], + $_POST["addJobNameFr"] + ) + || isset($_POST["delJobId"]) + || isset($_POST["delMissionId"]) + ) + ) { + + // Suppression d'un utilisateur + if (isset($_POST["delUserId"]) + && $_POST["delUserId"] !== "" + ) { + admin_user_del($_POST["delUserId"]); + + // Ajout d'un catégorie d'emploi + } elseif (isset($_POST["addJobNameEn"]) + && isset($_POST["addJobNameFr"]) + && $_POST["addJobNameEn"] !== "" + && $_POST["addJobNameFr"] !== "" + ) { + admin_job_add($_POST["addJobNameEn"], $_POST["addJobNameFr"]); + + // Suppression d'une categorie d'emploi + } elseif (isset($_POST["delJobId"]) + && $_POST["delJobId"] !== "" + ) { + admin_job_del($_POST["delJobId"]); + + // Suppression d'une mission + } elseif (isset($_POST["delMissionId"]) + && $_POST["delMissionId"] !== "" + ) { + admin_mission_del($_POST["delMissionId"]); + + // sinon + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// SI ERREUR DANS $_SESSION ou $_POST +// **************************************************************************** + // Enfin, si requete invalide + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// SI "src" N'EST PAS DEFINI DANS $_SESSION +// **************************************************************************** +} else { + http_response_code(404); + die(); +} +?>
\ No newline at end of file |
