Correction mineur du nom de la constante listedesentree + Ajout de commentaires à but documentaire pour les fonctions

pull/4/head
ycharbi 2 years ago
parent 95245825cb
commit 203dcaf4ee

@ -1,18 +1,24 @@
const listedesentree = []; /*
* Page de fonctions JavaScript afférentes à l'affichage dynamique d'éléments.
**/
/*
* Fonction permettant d'afficher et de masquer le bouton d'enregistrement d'un changement d'état pour les alias virtuels, domaines et entrées de liste noire d'un utilisateur.
**/
function activationBoutonFlotant(lui) { function activationBoutonFlotant(lui) {
if (listedesentree.find(function(valeur) {return valeur == lui.name;})) { const listedesentrees = [];
for( var i = 0; i < listedesentree.length; i++){ if (listedesentrees.find(function(valeur) {return valeur == lui.name;})) {
if ( listedesentree[i] === lui.name) { for( var i = 0; i < listedesentrees.length; i++){
listedesentree.splice(i, 1); if ( listedesentrees[i] === lui.name) {
listedesentrees.splice(i, 1);
break; break;
} }
} }
} else { } else {
listedesentree.push(lui.name); listedesentrees.push(lui.name);
}; };
if (listedesentree.length > 0){ if (listedesentrees.length > 0){
document.getElementById("enregistrer-interrupteur").classList.remove("desactiver"); document.getElementById("enregistrer-interrupteur").classList.remove("desactiver");
document.getElementById("enregistrer-interrupteur").style.display = "block"; document.getElementById("enregistrer-interrupteur").style.display = "block";
}else{ }else{

@ -8,11 +8,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php")
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
/* /*
* Fonction d'authentification des utilisateurs. * Fonction d'authentification des utilisateurs.
* Elle récupère le couple identifiant/mot de passe renseigné par le visiteur sur la page d'accueil. * Elle récupère le couple identifiant/mot de passe renseigné par le visiteur sur la page d'accueil.
* Elle compare ces information avec la ligne correspondante dans la base de donnée (en prenant l'adresse de courriel comme sélecteur). * Elle compare ces information avec la ligne correspondante dans la base de donnée (en prenant l'adresse de courriel comme sélecteur).
* Elle hache le mot de passe du formulaire et le compare à celui de l'entrée correspondante en base. * Elle hache le mot de passe du formulaire et le compare à celui de l'entrée correspondante en base.
*/ */
function validationIdentifiants($pdo,$identifiant,$mdp) { function validationIdentifiants($pdo,$identifiant,$mdp) {
try { try {
$req = 'SELECT * FROM postfix_utilisateurs WHERE utilisateur=:identifiant'; $req = 'SELECT * FROM postfix_utilisateurs WHERE utilisateur=:identifiant';
@ -35,7 +35,7 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
if ($comptage == 1) { if ($comptage == 1) {
/** /*
* Les paramètres de la fonction crypt de $mot_de_passe_form sont composés du mot de passe issue du formulaire accueil ainsi que du sel. * Les paramètres de la fonction crypt de $mot_de_passe_form sont composés du mot de passe issue du formulaire accueil ainsi que du sel.
* Les signes dollars sont des séparateurs. $mot_de_passe_base[1]=6=SHA512. $mot_de_passe_base[2]=au sel du mot de passe contenu dans la base. * Les signes dollars sont des séparateurs. $mot_de_passe_base[1]=6=SHA512. $mot_de_passe_base[2]=au sel du mot de passe contenu dans la base.
* Les paramètres de sel sont issus du mot de passe haché contenu dans la base. * Les paramètres de sel sont issus du mot de passe haché contenu dans la base.
@ -56,6 +56,10 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
return false; return false;
} }
/*
* Fonction d'initialisation des valeurs de session.
* Elle utilise les informations de l'utilisateur en base de données pour initialiser une session personnalisée.
*/
function initValeursSession($result) { function initValeursSession($result) {
$_SESSION['id_utilisateur'] = $result[0]['id']; $_SESSION['id_utilisateur'] = $result[0]['id'];
$_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur']; $_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
@ -64,18 +68,28 @@ function initValeursSession($result) {
$_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur']; $_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur'];
} }
/*
* Fonction de création d'un cookie de connexion automatique.
* Si la case "Se souvenir de moi" est cochée au formulaire de connexion, un cookie d'une durée d'un mois est créé.
*/
function creerCookie($result) { function creerCookie($result) {
$cookie_params = array ( $cookie_params = array (
'expires' => time() + 60*60*24*30, 'expires' => time() + 60*60*24*30,
'path' => '/', 'path' => '/',
'domain' => $_SERVER['HTTP_HOST'], 'domain' => $_SERVER['HTTP_HOST'],
'secure' => false, // Mettre à true en prod (PENSER À LE FAIRE DANS deconnexion.php ET "Prolongement de la durée du cookie" AUSSI !) 'secure' => false, // Mettre à true pour ne le créer qu'en HTTPS (le faire également dans "deconnexion.php" et au commentaire "Prolongement de la durée du cookie." plus bas).
'httponly' => true, 'httponly' => true,
'samesite' => 'Strict' 'samesite' => 'Strict'
); );
setcookie('souvenir-session', htmlspecialchars($_SESSION['pseudo_utilisateur']).'|--@--|'.hash('sha3-512', $result['0']['id'].$result['0']['utilisateur'].$result['0']['mot_de_passe']), $cookie_params); setcookie('souvenir-session', htmlspecialchars($_SESSION['pseudo_utilisateur']).'|--@--|'.hash('sha3-512', $result['0']['id'].$result['0']['utilisateur'].$result['0']['mot_de_passe']), $cookie_params);
} }
/*
* Fonction de validation du cookie de connexion automatique.
* Vérifie la légitimité du cookie de connexion de l'utilisateur via les informations en base de données.
* Si légitime, une session PHP est initialisée et le cookie est renouvelé pour un mois supplémentaire.
* Si non légitime, la fonction ne fait rien. Le comportement du site s'en remet alors à la seule existence d'une session PHP.
*/
function validationCookie($pdo) { function validationCookie($pdo) {
if (isset($_COOKIE['souvenir-session'])) { if (isset($_COOKIE['souvenir-session'])) {
if (!isset($_SESSION['id_utilisateur'])) { if (!isset($_SESSION['id_utilisateur'])) {
@ -89,7 +103,6 @@ function validationCookie($pdo) {
$result = $sql ->fetchAll(PDO::FETCH_ASSOC); $result = $sql ->fetchAll(PDO::FETCH_ASSOC);
$comptage = count($result); $comptage = count($result);
} }
catch(PDOException $e) { catch(PDOException $e) {
die ("Erreur lors du traitement de la requête : " . $e->getMessage()); die ("Erreur lors du traitement de la requête : " . $e->getMessage());
@ -110,12 +123,11 @@ function validationCookie($pdo) {
else else
return false; return false;
} }
// Prolongement de la durée du cookie // Prolongement de la durée du cookie.
setcookie('souvenir-session', $_COOKIE['souvenir-session'], ['expires' => time() + 60*60*24*30, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => false, 'httponly' => true, 'samesite' => 'strict']); setcookie('souvenir-session', $_COOKIE['souvenir-session'], ['expires' => time() + 60*60*24*30, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => false, 'httponly' => true, 'samesite' => 'strict']);
} }
else else
return false; return false;
} }
?> ?>

@ -27,6 +27,9 @@ if (isset($_POST['identifiant']) && isset($_POST['mdp']) && !empty($_POST['ident
creerCookie($result); creerCookie($result);
} }
/**
* Définition des privilèges de l'utilisateur en fonction du paramètre spécifié dans la base de données.
*/
if (isset($_SESSION['pseudo_utilisateur']) && !empty($_SESSION['pseudo_utilisateur']) && $_SESSION['privilege_utilisateur']==="administrateur") { if (isset($_SESSION['pseudo_utilisateur']) && !empty($_SESSION['pseudo_utilisateur']) && $_SESSION['privilege_utilisateur']==="administrateur") {
header ("location: /pages/gestion/administration.php?message=bienvenue&page=accueil"); header ("location: /pages/gestion/administration.php?message=bienvenue&page=accueil");
die(); die();

Loading…
Cancel
Save