Ajout de la fonctionnalité de changement de préfixe utilisateur + changement du nom de plusieurs fonctions + déplacement et modification de la fonction d'affichage du préfixe d'un utilisateur + suppression ou correction de messages de débogage

pull/7/head
ycharbi 3 years ago
parent 08535603f4
commit b60bf87f07

@ -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){

@ -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

@ -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());
}
}

@ -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());
}
}
?>

@ -32,7 +32,8 @@ function retourneMessage($type_message,$num_message) {
13 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire expéditeurs a été modifié avec succès.</div>",
14 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été supprimée avec succès.</div>",
15 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vous avez bien été déconnecté.</div>",
16 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le mot de passe de $pseudo_utilisateur a bien été changé.</div>"),
16 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le mot de passe de $pseudo_utilisateur a bien été changé.</div>",
17 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le préfixe de $pseudo_utilisateur a bien été changé.</div>"),
"erreurs" => array(
1 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel supprimé.</div>",
2 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel créé car une donnée est erronée ou manquante.</div>",

@ -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 "<span class=\"input-group-text\">$prefixe_utilisateur</span>";
}

@ -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_;
</div>
</div>
</div>
</div>
</div>
<?php
if ($_SESSION['privilege_utilisateur']=="administrateur") {
echo <<<_HEREDOC_
<h5>Préfixe</h5>
<p>Préfixe actuel de {$_SESSION['pseudo_utilisateur']} : {$prefixe_utilisateur}</p>
<form action="/services/traitements/utilisateurs/changePrefixeUtilisateur.php" method="post">
<input type="text" name="nouveau_prefixe" placeholder="Nouveau prefixe">
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
</form>
_HEREDOC_;
}
?>
<script src="/fichiers/js/filtre.js"></script>

@ -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");

@ -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();
}

@ -0,0 +1,24 @@
<?php
/**
* Page de traitement permettant le changement du préfixe d'un utilisateur.
* Elle est appelée par la page de paramètres.
* Un champ accessible aux seuls administrateurs permet de changer le préfixe d'un utilisateur (peut être vide).
*/
session_start();
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
testPrivileges();
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouveau_prefixe'])) {
changePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_prefixe']));
header ("Location: /pages/gestion/administration.php?page=parametres&succes=17");
die();
}
else {
header ("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
die();
}
?>
Loading…
Cancel
Save