From b60bf87f07a7b8eb42d70761f49014fa330ebb11 Mon Sep 17 00:00:00 2001 From: ycharbi Date: Wed, 19 Jan 2022 23:09:46 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20fonctionnalit=C3=A9=20de=20ch?= =?UTF-8?q?angement=20de=20pr=C3=A9fixe=20utilisateur=20+=20changement=20d?= =?UTF-8?q?u=20nom=20de=20plusieurs=20fonctions=20+=20d=C3=A9placement=20e?= =?UTF-8?q?t=20modification=20de=20la=20fonction=20d'affichage=20du=20pr?= =?UTF-8?q?=C3=A9fixe=20d'un=20utilisateur=20+=20suppression=20ou=20correc?= =?UTF-8?q?tion=20de=20messages=20de=20d=C3=A9bogage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/fonctions/bdd/alias_virtuels.php | 21 +------- services/fonctions/bdd/domaines.php | 2 - services/fonctions/bdd/listes_noires.php | 2 +- services/fonctions/bdd/utilisateurs.php | 50 ++++++++++++++++--- services/fonctions/messages/messages.php | 3 +- services/gestion/alias_virtuels.php | 2 +- services/gestion/parametres.php | 20 +++++++- .../alias_virtuels/ajoutAliasVirtuels.php | 4 +- .../changeMotDePasseUtilisateur.php | 6 +-- .../utilisateurs/changePrefixeUtilisateur.php | 24 +++++++++ 10 files changed, 95 insertions(+), 39 deletions(-) create mode 100644 services/traitements/utilisateurs/changePrefixeUtilisateur.php diff --git a/services/fonctions/bdd/alias_virtuels.php b/services/fonctions/bdd/alias_virtuels.php index a175de8..b486ad2 100644 --- a/services/fonctions/bdd/alias_virtuels.php +++ b/services/fonctions/bdd/alias_virtuels.php @@ -7,25 +7,6 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -/** - * Fonction listant le préfixe de l'utilisateur courant. - */ -function retournePrefixeUtilisateurPostfix($pdo) { - try { - $req = 'SELECT prefixe FROM postfix_utilisateurs WHERE utilisateur=:utilisateur'; - $sql=$pdo->prepare($req); - $sql->bindValue(':utilisateur',$_SESSION['pseudo_utilisateur']); - $sql->execute(); - - $prefixe_utilisateur=$sql->fetchAll(); - return $prefixe_utilisateur[0]['prefixe']; - } - catch (\Exception $e) { - die ("Erreur de requête de selection des alias virtuels : ".$e->getMessage()); - } -} - - /** * Fonction listant les alias virtuels. */ @@ -55,7 +36,7 @@ function ajoutAliasVirtuelsPostfix($pdo,$nom_alias_virtuel,$choix_domaine_alias_ $sql=$pdo->prepare($req); $sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']); - $sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,100)); + $sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur']).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,100)); $sql->execute(); if ($sql->rowCount() == 1){ diff --git a/services/fonctions/bdd/domaines.php b/services/fonctions/bdd/domaines.php index 5f4294c..ad45857 100644 --- a/services/fonctions/bdd/domaines.php +++ b/services/fonctions/bdd/domaines.php @@ -72,8 +72,6 @@ function changeDomaineDefautPostfix($pdo,$choix_domaine_defaut) { catch (\Exception $e) { // Récupération du code de retour de la commande SQLite $code_retour=$sql->errorInfo(); - var_dump($code_retour); - die(); if ($code_retour[0]=="HY000") { // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data diff --git a/services/fonctions/bdd/listes_noires.php b/services/fonctions/bdd/listes_noires.php index bfd607d..9baa6fb 100644 --- a/services/fonctions/bdd/listes_noires.php +++ b/services/fonctions/bdd/listes_noires.php @@ -39,7 +39,7 @@ function listeEntreeListeNoireExpPostfix($pdo) { return $liste_entree_liste_noire_exp; } catch (\Exception $e) { - die ("Erreur de requête de selection des entrées de liste noire expéditeurs pour \"$base\" : ".$e->getMessage()); + die ("Erreur de requête de selection des entrées de liste noire expéditeurs : ".$e->getMessage()); } } diff --git a/services/fonctions/bdd/utilisateurs.php b/services/fonctions/bdd/utilisateurs.php index c6da1ef..8f56f97 100644 --- a/services/fonctions/bdd/utilisateurs.php +++ b/services/fonctions/bdd/utilisateurs.php @@ -19,14 +19,14 @@ function listeUtilisateursPostfix($pdo) { return $liste_utilisateurs; } catch (\Exception $e) { - die ("Erreur de requête de selection des utilisateurs pour \"$base\" : ".$e->getMessage()); + die ("Erreur de requête de selection des utilisateurs : ".$e->getMessage()); } } /** * Fonction vérifiant le mot de passe actuel d'un utilisateur. */ -function verificationMotDePasse($pdo,$identifiant,$mdp) { +function verificationMotDePasseUtilisateurPostfix($pdo,$identifiant,$mdp) { try { $req = 'SELECT mot_de_passe FROM postfix_utilisateurs WHERE utilisateur=:identifiant'; @@ -39,7 +39,7 @@ function verificationMotDePasse($pdo,$identifiant,$mdp) { } catch(PDOException $e) { - die ("Erreur lors du traitement de la requête : " . $e->getMessage()); + die ("Erreur lors du traitement de la requête de vérification du mot de passe utilisateur : " . $e->getMessage()); } if ($comptage == 1) { @@ -63,7 +63,7 @@ function verificationMotDePasse($pdo,$identifiant,$mdp) { /** * Fonction changeant le mot de passe d'un utilisateur. */ -function changeMotDePasseUtilisateursPostfix($pdo,$identifiant,$nouveau_mdp,$confirmation_mdp) { +function changeMotDePasseUtilisateurPostfix($pdo,$utilisateur,$nouveau_mdp,$confirmation_mdp) { if ($nouveau_mdp===$confirmation_mdp) { $caracters = '.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $chaine_aleatoire = ''; @@ -78,14 +78,14 @@ function changeMotDePasseUtilisateursPostfix($pdo,$identifiant,$nouveau_mdp,$con $mot_de_passe_hachis='{SHA512-CRYPT}'.crypt(trim($nouveau_mdp),'$6$'.$chaine_aleatoire); try { - $req = 'UPDATE postfix_utilisateurs SET mot_de_passe=:nouveau_mdp WHERE utilisateur=:identifiant'; + $req = 'UPDATE postfix_utilisateurs SET mot_de_passe=:nouveau_mdp WHERE utilisateur=:utilisateur'; $sql=$pdo->prepare($req); - $sql->bindValue(':identifiant', $identifiant); + $sql->bindValue(':utilisateur', $utilisateur); $sql->bindValue(':nouveau_mdp', $mot_de_passe_hachis); $sql->execute(); } catch (\Exception $e) { - die ("Erreur de requête de selection des utilisateurs pour \"$base\" : ".$e->getMessage()); + die ("Erreur de requête de changement de mot de passe utilisateur : ".$e->getMessage()); } return true; } @@ -94,4 +94,40 @@ function changeMotDePasseUtilisateursPostfix($pdo,$identifiant,$nouveau_mdp,$con } } +/** + * Fonction listant le préfixe de l'utilisateur courant. + */ +function retournePrefixeUtilisateurPostfix($pdo,$utilisateur) { + try { + $req = 'SELECT prefixe FROM postfix_utilisateurs WHERE utilisateur=:utilisateur'; + $sql=$pdo->prepare($req); + $sql->bindValue(':utilisateur', $utilisateur); + $sql->execute(); + + $prefixe_utilisateurs = $sql->fetchAll(); + return $prefixe_utilisateurs[0]['prefixe']; + } + catch (\Exception $e) { + die ("Erreur de requête de changement de préfixe utilisateur : ".$e->getMessage()); + } +} + +/** + * Fonction changeant le préfixe d'un utilisateur. + */ +function changePrefixeUtilisateurPostfix($pdo,$utilisateur,$nouveau_prefixe) { + try { + $req = 'UPDATE postfix_utilisateurs SET prefixe=:nouveau_prefixe WHERE utilisateur=:utilisateur'; + $sql=$pdo->prepare($req); + $sql->bindValue(':utilisateur', $utilisateur); + $sql->bindValue(':nouveau_prefixe', $nouveau_prefixe); + $sql->execute(); + + return true; + } + catch (\Exception $e) { + die ("Erreur de requête de changement de préfixe utilisateur : ".$e->getMessage()); + } +} + ?> \ No newline at end of file diff --git a/services/fonctions/messages/messages.php b/services/fonctions/messages/messages.php index 45f79c4..a20c7a1 100644 --- a/services/fonctions/messages/messages.php +++ b/services/fonctions/messages/messages.php @@ -32,7 +32,8 @@ function retourneMessage($type_message,$num_message) { 13 => "
L'état de l'entrée de liste noire expéditeurs a été modifié avec succès.
", 14 => "
L'entrée de liste noire expéditeurs a été supprimée avec succès.
", 15 => "
Vous avez bien été déconnecté.
", - 16 => "
Le mot de passe de $pseudo_utilisateur a bien été changé.
"), + 16 => "
Le mot de passe de $pseudo_utilisateur a bien été changé.
", + 17 => "
Le préfixe de $pseudo_utilisateur a bien été changé.
"), "erreurs" => array( 1 => "
Aucun alias virtuel supprimé.
", 2 => "
Aucun alias virtuel créé car une donnée est erronée ou manquante.
", diff --git a/services/gestion/alias_virtuels.php b/services/gestion/alias_virtuels.php index 2b64747..12c5231 100644 --- a/services/gestion/alias_virtuels.php +++ b/services/gestion/alias_virtuels.php @@ -63,7 +63,7 @@ _HEREDOC_; /** * Ajout d'un alias virtuel. */ - $prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo); + $prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur']); if (!empty($prefixe_utilisateur)) { echo "$prefixe_utilisateur"; } diff --git a/services/gestion/parametres.php b/services/gestion/parametres.php index 0c3571e..5f72a92 100644 --- a/services/gestion/parametres.php +++ b/services/gestion/parametres.php @@ -7,6 +7,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php"); $liste_utilisateurs = listeUtilisateursPostfix($pdo); + $prefixe_utilisateur = retournePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur']); /** * Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur. @@ -66,4 +67,21 @@ _HEREDOC_; - \ No newline at end of file + + +Préfixe +

Préfixe actuel de {$_SESSION['pseudo_utilisateur']} : {$prefixe_utilisateur}

+
+ + +
+_HEREDOC_; +} + +?> + + \ No newline at end of file diff --git a/services/traitements/alias_virtuels/ajoutAliasVirtuels.php b/services/traitements/alias_virtuels/ajoutAliasVirtuels.php index 53fd5a7..19ce9c0 100644 --- a/services/traitements/alias_virtuels/ajoutAliasVirtuels.php +++ b/services/traitements/alias_virtuels/ajoutAliasVirtuels.php @@ -10,14 +10,12 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php"); +require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php"); // Permet le contrôle du domaine renseigné par l'utilisateur require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); $liste_domaines = listeDomainesPostfix($pdo); -var_dump($liste_domaines,$_POST); -//die(); - if (isset($_POST['nom_alias_virtuel']) && isset($_POST['choix_domaine_alias_virtuel']) && !empty($_POST['nom_alias_virtuel']) && !empty($_POST['choix_domaine_alias_virtuel']) && in_array($_POST['choix_domaine_alias_virtuel'],array_column($liste_domaines,'domaine'))) { ajoutAliasVirtuelsPostfix($pdo,$_POST['nom_alias_virtuel'],$_POST['choix_domaine_alias_virtuel']); header ("Location: /pages/gestion/administration.php?page=alias&succes=1"); diff --git a/services/traitements/utilisateurs/changeMotDePasseUtilisateur.php b/services/traitements/utilisateurs/changeMotDePasseUtilisateur.php index a76b752..5c9381c 100644 --- a/services/traitements/utilisateurs/changeMotDePasseUtilisateur.php +++ b/services/traitements/utilisateurs/changeMotDePasseUtilisateur.php @@ -12,7 +12,7 @@ testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php"); if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouveau_mot_de_passe']) && !empty($_POST['nouveau_mot_de_passe']) && isset($_POST['confirmation_mot_de_passe']) && !empty($_POST['confirmation_mot_de_passe'])) { - if (changeMotDePasseUtilisateursPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) { + if (changeMotDePasseUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) { header ("Location: /pages/gestion/administration.php?page=parametres&succes=16"); die(); } @@ -22,8 +22,8 @@ if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouvea } } elseif ($_SESSION['privilege_utilisateur']=="utilisateur" && isset($_POST['ancien_mot_de_passe']) && !empty($_POST['ancien_mot_de_passe']) && isset($_POST['nouveau_mot_de_passe']) && !empty($_POST['nouveau_mot_de_passe']) && isset($_POST['confirmation_mot_de_passe']) && !empty($_POST['confirmation_mot_de_passe'])) { - if (verificationMotDePasse($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['ancien_mot_de_passe']))) { - if (changeMotDePasseUtilisateursPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) { + if (verificationMotDePasseUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['ancien_mot_de_passe']))) { + if (changeMotDePasseUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) { header ("Location: /pages/gestion/administration.php?page=parametres&succes=16"); die(); } diff --git a/services/traitements/utilisateurs/changePrefixeUtilisateur.php b/services/traitements/utilisateurs/changePrefixeUtilisateur.php new file mode 100644 index 0000000..fe89286 --- /dev/null +++ b/services/traitements/utilisateurs/changePrefixeUtilisateur.php @@ -0,0 +1,24 @@ + \ No newline at end of file