diff --git a/services/actions/ajoutAliasVirtuels.php b/services/actions/ajoutAliasVirtuels.php index fedf8f3..960c7d1 100644 --- a/services/actions/ajoutAliasVirtuels.php +++ b/services/actions/ajoutAliasVirtuels.php @@ -11,7 +11,7 @@ require_once($_SERVER["DOCUMENT_ROOT"]."/services/sessions/privileges.php"); testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php"); -if (isset($_POST['prefix_alias']) && isset($_POST['nom_alias']) && isset($_POST['choix_domaine_alias']) && !empty($_POST['nom_alias']) && !empty($_POST['choix_domaine_alias'])) { +if (isset($_POST['nom_alias']) && isset($_POST['choix_domaine_alias']) && !empty($_POST['nom_alias']) && !empty($_POST['choix_domaine_alias'])) { ajoutAliasVirtuelsPostfix($pdo); header ("Location: /pages/gestion/administration.php?page=alias&succes=3"); die(); diff --git a/services/bdd/alias_virtuels.php b/services/bdd/alias_virtuels.php index 2b0a0d7..5706d8d 100644 --- a/services/bdd/alias_virtuels.php +++ b/services/bdd/alias_virtuels.php @@ -7,15 +7,38 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/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. */ function listeAliasVirtuelsPostfix($pdo) { try { // Filtre des alias virtuels de l'utilisateur courant - $req = $pdo->query('SELECT * FROM postfix_alias_virtuels WHERE destination='."\"$_SESSION[pseudo_utilisateur]\""); + $req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination'; + $sql=$pdo->prepare($req); + $sql->bindValue(':destination',$_SESSION['pseudo_utilisateur']); + $sql->execute(); + $liste_alias_virtuels = array(); - foreach ($req as $alias_virtuels_bdd => $alias_virtuels) { + foreach ($sql->fetchAll() as $alias_virtuels_bdd => $alias_virtuels) { array_push($liste_alias_virtuels,$alias_virtuels); } return $liste_alias_virtuels; @@ -35,17 +58,7 @@ function ajoutAliasVirtuelsPostfix($pdo) { $sql=$pdo->prepare($req); $sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']); - - // Si l'utilisateur spécifie un préfixe à son alias, un "." est ajouté pour lé séparé du reste afin d'avoir "préfixe.alias@NdD" - if (!empty($_POST['prefix_alias'])) { - $separateur_prefix_alias="."; - } - // Permet de ne pas renvoyer le message "Notice: Undefined variable: separateur_prefix_alias" lors de lexécution du "bindValue" suivant - else { - $separateur_prefix_alias=""; - } - - $sql->bindValue(':alias_virtuel',$_POST['prefix_alias'].$separateur_prefix_alias.$_POST['nom_alias']."@".$_POST['choix_domaine_alias']); + $sql->bindValue(':alias_virtuel',retournePrefixeUtilisateurPostfix($pdo).$_POST['nom_alias']."@".$_POST['choix_domaine_alias']); $sql->execute(); if($sql->rowCount() == 1){ @@ -116,15 +129,13 @@ function modifEtatAliasVirtuelsPostfix($pdo) { */ function supprAliasVirtuelsPostfix($pdo) { try { - //$req = $pdo->query('DELETE FROM postfix_alias_virtuels WHERE id='."$_GET[supprAliasVirtuel]".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)'); $req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur'; - //$req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND courriel=:pseudo_utilisateur||(SELECT domaine FROM postfix_domaines WHERE defaut=1)'; + $sql=$pdo->prepare($req); - //$sql->bindParam(':id',$_GET['supprAliasVirtuel'],':pseudo_utilisateur',$_SESSION['pseudo_utilisateur]',':@','@'); $sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']); - //$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']."@"); $sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']); $sql->execute(); + if($sql->rowCount() == 1){ return true; } diff --git a/services/bdd/domaines.php b/services/bdd/domaines.php index 8361635..4e186bf 100644 --- a/services/bdd/domaines.php +++ b/services/bdd/domaines.php @@ -11,11 +11,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php"); */ function listeDomainesPostfix($pdo) { try { - $req = $pdo->query('SELECT domaine FROM postfix_domaines ORDER BY defaut DESC'); - $liste_domaines = array(); - foreach ($req as $domaine_bdd => $domaine) { - array_push($liste_domaines,$domaine); - } + $req = 'SELECT domaine FROM postfix_domaines ORDER BY defaut DESC'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_domaines = $sql->fetchAll(); return $liste_domaines; } catch (\Exception $e) { @@ -26,12 +26,14 @@ function listeDomainesPostfix($pdo) { /** * Fonction affichant le domaine par défaut. */ -function afficheDomaineDefautPostfix($pdo) { +function retourneDomaineDefautPostfix($pdo) { try { - $req = $pdo->query('SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1'); - foreach ($req as $domaine_bdd => $domaine_defaut) { - } - return $domaine_defaut['domaine']; + $req = 'SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $domaine_defaut = $sql->fetchAll(); + return $domaine_defaut[0]['domaine']; } catch (\Exception $e) { die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage()); diff --git a/services/bdd/utilisateurs.php b/services/bdd/utilisateurs.php index 0f88841..b4108f8 100644 --- a/services/bdd/utilisateurs.php +++ b/services/bdd/utilisateurs.php @@ -11,11 +11,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php"); */ function listeUtilisateursPostfix($pdo) { try { - $req = $pdo->query('SELECT utilisateur FROM postfix_utilisateurs'); - $liste_utilisateurs = array(); - foreach ($req as $utilisateur_bdd => $utilisateur) { - array_push($liste_utilisateurs,$utilisateur); - } + $req = 'SELECT utilisateur FROM postfix_utilisateurs'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_utilisateurs = $sql->fetchAll(); return $liste_utilisateurs; } catch (\Exception $e) { diff --git a/services/gestion/alias.php b/services/gestion/alias.php index cd61968..25a27a3 100644 --- a/services/gestion/alias.php +++ b/services/gestion/alias.php @@ -11,7 +11,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php"); $liste_utilisateurs = listeUtilisateursPostfix($pdo); $liste_domaines = listeDomainesPostfix($pdo); $liste_alias_virtuels = listeAliasVirtuelsPostfix($pdo); - + /** * Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur. */ @@ -51,10 +51,14 @@ _HEREDOC_;