diff --git a/accueil.php b/accueil.php index c40a8b1..601c81f 100644 --- a/accueil.php +++ b/accueil.php @@ -1,9 +1,13 @@ - +prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;'); + $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); + if ($query_check_cookie->rowCount() == 1){ +?>
@@ -44,6 +48,16 @@ if (isset($_SESSION["username"])){ ?> - - - \ No newline at end of file +location.href='/';"; + } + } else { + echo ""; + } +} else { + echo ""; +} + + +?> \ No newline at end of file diff --git a/assets/js/index.js b/assets/js/index.js index 05e6ce7..7ad7b5d 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -18,8 +18,9 @@ 'controller/Auth.php', {user: $(input[0]).val().trim(), pass: sha1($(input[1]).val().trim())}, function(data, status, jqXHR) { + console.log(data.trim()); if (data.trim() == "true"){ - window.location.href = "/accueil.php"; + location.href='/'; } else { $("#zone-login").addClass("shaking_error"); setTimeout(function() { diff --git a/candidatures.php b/candidatures.php index 196db53..cd85a34 100644 --- a/candidatures.php +++ b/candidatures.php @@ -1,30 +1,31 @@ prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;'); + $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); + if ($query_check_cookie->rowCount() == 1){ -if (isset($_SESSION["username"])){ - $sql = 'SELECT ID_candidature, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, ID_user, username, city_localisation, postal_code_localisation FROM candidatures NATURAL JOIN users INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation NATURAL JOIN companies WHERE username=:user ORDER BY offer_date_internship ASC;'; + $sql = 'SELECT ID_candidature, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, ID_user, username, city_localisation, postal_code_localisation FROM candidatures NATURAL JOIN users INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation NATURAL JOIN companies WHERE username=:user ORDER BY offer_date_internship ASC;'; + $query_perm = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username=:user;'); + $query_perm->execute(['user' => $_COOKIE["username"]]); + $results_perm = $query_perm->fetchALL(PDO::FETCH_OBJ); + if ($query_perm->rowCount() >= 1) { + $showCandidatures = false; - include "controller/ConnexionBDD.php"; - if (!$error) { - $query_perm = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username=:user;'); - $query_perm->execute(['user' => $_SESSION["username"]]); - $results_perm = $query_perm->fetchALL(PDO::FETCH_OBJ); - if ($query_perm->rowCount() >= 1) { - $showCandidatures = false; - - foreach ($results_perm as $result) { - if ($result->code_permission == "SFx29" || $result->code_permission == "SFx30" || $result->code_permission == "SFx31" || $result->code_permission == "SFx32" || $result->code_permission == "SFx33" || $result->code_permission == "SFx34" || $result->code_permission == "SFx35"){ - $showCandidatures = true; + foreach ($results_perm as $result) { + if ($result->code_permission == "SFx29" || $result->code_permission == "SFx30" || $result->code_permission == "SFx31" || $result->code_permission == "SFx32" || $result->code_permission == "SFx33" || $result->code_permission == "SFx34" || $result->code_permission == "SFx35"){ + $showCandidatures = true; + } } - } - if ($showCandidatures){ + if ($showCandidatures){ - $query_candidatures = $bdd->prepare($sql); - $query_candidatures->execute(['user' => $_SESSION["username"]]); - $results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ); + $query_candidatures = $bdd->prepare($sql); + $query_candidatures->execute(['user' => $_COOKIE["username"]]); + $results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ); ?> @@ -128,14 +129,19 @@ if (isset($_SESSION["username"])){ location.href='/';"; } + } else { + echo ""; } } else { echo ""; diff --git a/controller/AddRemoveWishlist.php b/controller/AddRemoveWishlist.php index 5b304ab..188fbc9 100644 --- a/controller/AddRemoveWishlist.php +++ b/controller/AddRemoveWishlist.php @@ -1,47 +1,48 @@ prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;'); + $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); + if ($query_check_cookie->rowCount() == 1){ + if ($_SERVER['REQUEST_METHOD'] === 'POST') { /*Seulement si la method est en POST*/ + if (isset($_POST["action"]) && isset($_POST["ID_internship"])){ /*Vérification de l'existance des paramètres*/ + $action = $_POST["action"]; /*Récupération des paramètres*/ + $ID_internship = $_POST["ID_internship"]; /*Récupération des paramètres*/ + + $query_check_wishlist = $bdd->prepare('SELECT ID_user FROM users NATURAL JOIN wishlist INNER JOIN internships ON wishlist.ID_internship=internships.ID_internship WHERE username=:user AND wishlist.ID_internship=:id_internship;'); + $query_check_wishlist->execute(['user' => $_COOKIE["username"], 'id_internship' => $ID_internship]); /*Remplissage de la requete avec les données*/ + $results_check_wishlist = $query_check_wishlist->fetchALL(PDO::FETCH_OBJ); /*Retour un résultat sous forme d'objet*/ + + if ($action == "remove"){ + if ($query_check_wishlist->rowCount() == 1){ + $query_del_wishlist = $bdd->prepare('DELETE FROM wishlist WHERE ID_internship=:id_internship AND ID_user=:id_user;'); + $query_del_wishlist->execute(['id_internship' => $ID_internship, 'id_user' => $results_check_wishlist[0]->ID_user, ]); + echo 'remove_ok'; + } else { echo "remove_error";} + } else if ($action == "add"){ + if ($query_check_wishlist->rowCount() == 0){ + + $query_get_id_user = $bdd->prepare('SELECT ID_user FROM users WHERE username=:user LIMIT 1;'); + $query_get_id_user->execute(['user' => $_COOKIE["username"]]); /*Remplissage de la requete avec les données*/ + $results_get_id_user = $query_get_id_user->fetchALL(PDO::FETCH_OBJ); /*Retour un résultat sous forme d'objet*/ -if (isset($_SESSION["username"])){ - if ($_SERVER['REQUEST_METHOD'] === 'POST') { /*Seulement si la method est en POST*/ - if (isset($_POST["action"]) && isset($_POST["ID_internship"])){ /*Vérification de l'existance des paramètres*/ - $action = $_POST["action"]; /*Récupération des paramètres*/ - $ID_internship = $_POST["ID_internship"]; /*Récupération des paramètres*/ - - require "ConnexionBDD.php"; /*Inclusion de la partie connexion*/ - if (!$error) { /*Si la connexion a été établie sans erreur*/ - $query_check_wishlist = $bdd->prepare('SELECT ID_user FROM users NATURAL JOIN wishlist INNER JOIN internships ON wishlist.ID_internship=internships.ID_internship WHERE username=:user AND wishlist.ID_internship=:id_internship;'); - $query_check_wishlist->execute(['user' => $_SESSION["username"], 'id_internship' => $ID_internship]); /*Remplissage de la requete avec les données*/ - $results_check_wishlist = $query_check_wishlist->fetchALL(PDO::FETCH_OBJ); /*Retour un résultat sous forme d'objet*/ - - if ($action == "remove"){ - if ($query_check_wishlist->rowCount() == 1){ - $query_del_wishlist = $bdd->prepare('DELETE FROM wishlist WHERE ID_internship=:id_internship AND ID_user=:id_user;'); - $query_del_wishlist->execute(['id_internship' => $ID_internship, 'id_user' => $results_check_wishlist[0]->ID_user, ]); - echo 'remove_ok'; - } else { echo "remove_error";} - } else if ($action == "add"){ - if ($query_check_wishlist->rowCount() == 0){ - - $query_get_id_user = $bdd->prepare('SELECT ID_user FROM users WHERE username=:user LIMIT 1;'); - $query_get_id_user->execute(['user' => $_SESSION["username"]]); /*Remplissage de la requete avec les données*/ - $results_get_id_user = $query_get_id_user->fetchALL(PDO::FETCH_OBJ); /*Retour un résultat sous forme d'objet*/ + if ($query_get_id_user->rowCount() == 1){ + $query_del_wishlist = $bdd->prepare('INSERT INTO wishlist (ID_internship, ID_user) VALUES (:id_internship, :id_user);'); + $query_del_wishlist->execute(['id_internship' => $ID_internship, 'id_user' => $results_get_id_user[0]->ID_user, ]); + echo 'add_ok'; + } else {echo 'add_error';} - if ($query_get_id_user->rowCount() == 1){ - $query_del_wishlist = $bdd->prepare('INSERT INTO wishlist (ID_internship, ID_user) VALUES (:id_internship, :id_user);'); - $query_del_wishlist->execute(['id_internship' => $ID_internship, 'id_user' => $results_get_id_user[0]->ID_user, ]); - echo 'add_ok'; - } else {echo 'add_error';} - - - } else { echo "false";} + + } else { echo "false";} + } + $bdd = null; /*Fin de connexion*/ } - - $bdd = null; /*Fin de connexion*/ - } else {echo "false";} /*Dans le cas d'une erreur de connexion à la BDD, retour false (erreur d'authentification)*/ + } + } else { + echo ""; } } -} else { - echo ""; } ?> \ No newline at end of file diff --git a/controller/Auth.php b/controller/Auth.php index 20885bb..195e950 100644 --- a/controller/Auth.php +++ b/controller/Auth.php @@ -1,6 +1,4 @@ prepare('SELECT password_user FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user;'); - $query->execute(['user' => $user]); /*Remplissage de la requete avec les données*/ - $results = $query->fetchALL(PDO::FETCH_OBJ); /*Retour un résultat sous forme d'objet*/ + $query = $bdd->prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;'); + $query->execute(['user' => $user, 'password_user' => $pass]); if ($query->rowCount() == 1){ - if ($results[0]->password_user == $pass){ - echo "true"; /*Retourne true si le mot de passe correspond*/ - $_SESSION["username"] = $user; - /*Requête permettant la mise à jour des champs : connection_count et last_connection de l'utilisateur*/ - $query = $bdd->prepare('UPDATE users SET connection_count = connection_count + 1, last_connection = CURDATE() WHERE username = :user;'); - $query->execute(['user' => $user]); /*Execution de la requête*/ - } - else { echo "false";} /*false si mot de passe non correct*/ + echo "true"; /*Retourne true si le mot de passe correspond*/ + setcookie("username", $_POST["user"], time()+7200, "/"); + setcookie("pass", $_POST["pass"], time()+7200, "/"); + /*Requête permettant la mise à jour des champs : connection_count et last_connection de l'utilisateur*/ + $query = $bdd->prepare('UPDATE users SET connection_count = connection_count + 1, last_connection = CURDATE() WHERE username = :user;'); + $query->execute(['user' => $user]); /*Execution de la requête*/ } else { echo "false";} $bdd = null; /*Fin de connexion*/ } else {echo "false";} /*Dans le cas d'une erreur de connexion à la BDD, retour false (erreur d'authentification)*/ diff --git a/controller/Disconnect.php b/controller/Disconnect.php index 28c3a4d..2b7636a 100644 --- a/controller/Disconnect.php +++ b/controller/Disconnect.php @@ -1,5 +1,9 @@ location.href='/'" +if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { + setcookie("username", "", time() - 3600, "/"); + setcookie("pass", "", time() - 3600, "/"); + echo ""; +} else { + echo ""; +} ?> \ No newline at end of file diff --git a/controller/Nav_bar.php b/controller/Nav_bar.php index 13aa562..f48966f 100644 --- a/controller/Nav_bar.php +++ b/controller/Nav_bar.php @@ -1,59 +1,64 @@ prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username = :user;'); - $query_perm_nav->execute(['user' => $_SESSION["username"]]); - $results_nav = $query_perm_nav->fetchALL(PDO::FETCH_OBJ); - if ($query_perm_nav->rowCount() >= 1) { - $showOffres = false; - $showStages = false; - $showEntreprises = false; - $showFavoris = false; - $showCandidatures = false; //A revoir au niveau des permissions - $showGestions = false; - $showGestion_Enterprises = false; - $showGestion_Studients = false; - $showGestion_Pilots = false; - $showGestion_Delegates = false; - $showGestion_Stages = false; - - foreach($results_nav as $result){ - if ($result->code_permission == "SFx2" || $result->code_permission == "SFx8"){ - $showOffres = true; - } - if ($result->code_permission == "SFx8"){ - $showStages = true; - } - if ($result->code_permission == "SFx2"){ - $showEntreprises = true; - } - if ($result->code_permission == "SFx27" || $result->code_permission == "SFx28"){ - $showFavoris = true; - } - if ($result->code_permission == "SFx29" || $result->code_permission == "SFx30" || $result->code_permission == "SFx31" || $result->code_permission == "SFx32" || $result->code_permission == "SFx33" || $result->code_permission == "SFx34" || $result->code_permission == "SFx35"){ - $showCandidatures = true; - } - if ($result->code_permission == "SFx3" || $result->code_permission == "SFx4" || $result->code_permission == "SFx5" || $result->code_permission == "SFx6" || $result->code_permission == "SFx7"){ - $showGestion_Enterprises = true; - $showGestions = true; - } - if ($result->code_permission == "SFx22" || $result->code_permission == "SFx23" || $result->code_permission == "SFx24" || $result->code_permission == "SFx25" || $result->code_permission == "SFx26"){ - $showGestion_Studients = true; - $showGestions = true; - } - if ($result->code_permission == "SFx13" || $result->code_permission == "SFx14" || $result->code_permission == "SFx15" || $result->code_permission == "SFx16"){ - $showGestion_Pilots = true; - $showGestions = true; - } - if ($result->code_permission == "SFx17" || $result->code_permission == "SFx18" || $result->code_permission == "SFx19" || $result->code_permission == "SFx20" || $result->code_permission == "SFx21"){ - $showGestion_Delegates = true; - $showGestions = true; - } - if ($result->code_permission == "SFx9" || $result->code_permission == "SFx10" || $result->code_permission == "SFx11" || $result->code_permission == "SFx12"){ - $showGestion_Stages = true; - $showGestions = true; +if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { + require "ConnexionBDD.php"; + if (!$error) { + $query_check_cookie = $bdd->prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;'); + $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); + if ($query_check_cookie->rowCount() == 1){ + + $query_perm_nav = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username = :user;'); + $query_perm_nav->execute(['user' => $_COOKIE["username"]]); + $results_nav = $query_perm_nav->fetchALL(PDO::FETCH_OBJ); + if ($query_perm_nav->rowCount() >= 1) { + $showOffres = false; + $showStages = false; + $showEntreprises = false; + $showFavoris = false; + $showCandidatures = false; //A revoir au niveau des permissions + $showGestions = false; + $showGestion_Enterprises = false; + $showGestion_Studients = false; + $showGestion_Pilots = false; + $showGestion_Delegates = false; + $showGestion_Stages = false; + + foreach($results_nav as $result){ + if ($result->code_permission == "SFx2" || $result->code_permission == "SFx8"){ + $showOffres = true; + } + if ($result->code_permission == "SFx8"){ + $showStages = true; + } + if ($result->code_permission == "SFx2"){ + $showEntreprises = true; + } + if ($result->code_permission == "SFx27" || $result->code_permission == "SFx28"){ + $showFavoris = true; + } + if ($result->code_permission == "SFx29" || $result->code_permission == "SFx30" || $result->code_permission == "SFx31" || $result->code_permission == "SFx32" || $result->code_permission == "SFx33" || $result->code_permission == "SFx34" || $result->code_permission == "SFx35"){ + $showCandidatures = true; + } + if ($result->code_permission == "SFx3" || $result->code_permission == "SFx4" || $result->code_permission == "SFx5" || $result->code_permission == "SFx6" || $result->code_permission == "SFx7"){ + $showGestion_Enterprises = true; + $showGestions = true; + } + if ($result->code_permission == "SFx22" || $result->code_permission == "SFx23" || $result->code_permission == "SFx24" || $result->code_permission == "SFx25" || $result->code_permission == "SFx26"){ + $showGestion_Studients = true; + $showGestions = true; + } + if ($result->code_permission == "SFx13" || $result->code_permission == "SFx14" || $result->code_permission == "SFx15" || $result->code_permission == "SFx16"){ + $showGestion_Pilots = true; + $showGestions = true; + } + if ($result->code_permission == "SFx17" || $result->code_permission == "SFx18" || $result->code_permission == "SFx19" || $result->code_permission == "SFx20" || $result->code_permission == "SFx21"){ + $showGestion_Delegates = true; + $showGestions = true; + } + if ($result->code_permission == "SFx9" || $result->code_permission == "SFx10" || $result->code_permission == "SFx11" || $result->code_permission == "SFx12"){ + $showGestion_Stages = true; + $showGestions = true; + } } } } diff --git a/controller/Postuler.php b/controller/Postuler.php index 1dc49fb..ebce5f2 100644 --- a/controller/Postuler.php +++ b/controller/Postuler.php @@ -9,79 +9,80 @@ require_once '../assets/vendors/phpmailer/src/SMTP.php'; $mail = new PHPMailer(true); -session_start(); +if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { + require "ConnexionBDD.php"; + if (!$error) { + $query_check_cookie = $bdd->prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;'); + $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); + if ($query_check_cookie->rowCount() == 1){ -if (isset($_SESSION["username"])){ - include "../controller/ConnexionBDD.php"; - if (!$error) { - if (is_uploaded_file($_FILES['cv']['tmp_name']) && is_uploaded_file($_FILES['lm']['tmp_name']) && isset($_POST["ID_internship"])) { - $query_ID_user = $bdd->prepare('SELECT ID_user FROM users WHERE username=:user;'); - $query_ID_user->execute(['user' => $_SESSION["username"]]); - $ID_user = $query_ID_user->fetchALL(PDO::FETCH_OBJ)[0]->ID_user; + if (is_uploaded_file($_FILES['cv']['tmp_name']) && is_uploaded_file($_FILES['lm']['tmp_name']) && isset($_POST["ID_internship"])) { + $query_ID_user = $bdd->prepare('SELECT ID_user FROM users WHERE username=:user;'); + $query_ID_user->execute(['user' => $_COOKIE["username"]]); + $ID_user = $query_ID_user->fetchALL(PDO::FETCH_OBJ)[0]->ID_user; - $location_cv = "/documents/users/".$ID_user."/candidatures/".$_POST["ID_internship"]."/".$_FILES['cv']['name']; - $location_lm = "/documents/users/".$ID_user."/candidatures/".$_POST["ID_internship"]."/".$_FILES['lm']['name']; + $location_cv = "/documents/users/".$ID_user."/"."candidatures/".$_POST["ID_internship"]."/".$_FILES['cv']['name']; + $location_lm = "/documents/users/".$ID_user."/"."candidatures/".$_POST["ID_internship"]."/".$_FILES['lm']['name']; - echo $location_cv; - echo "