diff --git a/inclusions/barre_menu.php b/inclusions/barre_menu.php index d38b86e..c2203e2 100644 --- a/inclusions/barre_menu.php +++ b/inclusions/barre_menu.php @@ -8,7 +8,7 @@ echo <<<_HEREDOC_
- + _HEREDOC_; if (testPrivileges()=="administrateur") { diff --git a/pages/gestion/administration.php b/pages/gestion/administration.php index d4f14e1..ea671f2 100644 --- a/pages/gestion/administration.php +++ b/pages/gestion/administration.php @@ -11,64 +11,16 @@ testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php"); require_once ($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_menu.php"); +require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/messages/messages.php"); + /** * Affichage d'une bannière d'état sur l'action précedemment effectuée. */ if (isset($_GET['erreur']) && !empty($_GET['erreur'])) { - switch ($_GET['erreur']) { - case 1: - echo "

Erreur : aucun alias virtuel supprimé.

"; - break; - case 2: - echo "

Erreur : aucun alias virtuel créé car une donnée est erronée ou manquante.

"; - break; - case 3: - echo "

Erreur : L'alias virtuel est déjà existant.

"; - break; - case 4: - echo "

Erreur : Code d'erreur générique (HY000) signifiant probablement que la base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire bdd appartiennent à www-data.

"; - break; - case 5: - echo "

Erreur : aucun domaine supprimé.

"; - break; - case 6: - echo "

Erreur : aucun domaine créé car une donnée est erronée ou manquante.

"; - break; - case 7: - echo "

Erreur : Le domaine est déjà existant.

"; - break; - case 8: - echo "

Erreur : Le domaine par défaut n'a pas été modifié.

"; - break; - } + retourneMessage('erreurs',$_GET['erreur']); } elseif (isset($_GET['succes']) && !empty($_GET['succes'])) { - switch ($_GET['succes']) { - case 1: - echo "

Succès : alias virtuel créé avec succès.

"; - break; - case 2: - echo "

Succès : alias virtuel modifiés avec succès.

"; - break; - case 3: - echo "

Succès : alias virtuel supprimé avec succès.

"; - break; - case 4: - echo "

Succès : utilisateur changé en ".$_SESSION['pseudo_utilisateur']." avec succès.

"; - break; - case 5: - echo "

Succès : domaine créé avec succès.

"; - break; - case 6: - echo "

Succès : domaine modifiés avec succès.

"; - break; - case 7: - echo "

Succès : domaine supprimé avec succès.

"; - break; - case 8: - echo "

Succès : domaine défini par défaut avec succès.

"; - break; - } + retourneMessage('succes',$_GET['succes']); } /** @@ -76,6 +28,9 @@ elseif (isset($_GET['succes']) && !empty($_GET['succes'])) { */ if (isset($_GET['page']) && !empty($_GET['page'])) { switch ($_GET['page']) { + case 'accueil': + require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/alias_virtuels.php"); + break; case 'alias': require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/alias_virtuels.php"); break; @@ -85,8 +40,14 @@ if (isset($_GET['page']) && !empty($_GET['page'])) { case 'listes_noires': require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/listes_noires.php"); break; + default: + echo "

Cette page n'existe pas.

"; + break; } } +else { + echo "

Cette page n'existe pas.

"; +} require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php"); diff --git a/services/fonctions/bdd/alias_virtuels.php b/services/fonctions/bdd/alias_virtuels.php index ac93fc1..f377a0e 100644 --- a/services/fonctions/bdd/alias_virtuels.php +++ b/services/fonctions/bdd/alias_virtuels.php @@ -48,14 +48,14 @@ function listeAliasVirtuelsPostfix($pdo) { /** * Fonction d'ajout d'un alias virtuel. */ -function ajoutAliasVirtuelsPostfix($pdo) { +function ajoutAliasVirtuelsPostfix($pdo,$nom_alias_virtuel,$choix_domaine_alias_virtuel) { try { // Insertion de l'alias virtuel entré par l'utilisateur et lié avec son adresse $req='INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES (:alias_virtuel,:courriel,1)'; $sql=$pdo->prepare($req); $sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']); - $sql->bindValue(':alias_virtuel',retournePrefixeUtilisateurPostfix($pdo).$_POST['nom_alias']."@".$_POST['choix_domaine_alias']); + $sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,49)); $sql->execute(); if ($sql->rowCount() == 1){ @@ -92,10 +92,10 @@ function ajoutAliasVirtuelsPostfix($pdo) { * Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des alias virtuels d'un utilisateur. * Elle occasionnera peut-être des baisses de performance si un très grand nombre d'alias virtuels existe pour un utilisateur donné (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée). */ -function modifEtatAliasVirtuelsPostfix($pdo) { +function modifEtatAliasVirtuelsPostfix($pdo,$retour_form) { try { $compteModifs=0; - foreach ($_POST as $id_alias_virtuel => $etat_alias_virtuel) { + foreach ($retour_form as $id_alias_virtuel => $etat_alias_virtuel) { $req='UPDATE postfix_alias_virtuels SET active=:etat_alias_virtuel WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur'; $sql=$pdo->prepare($req); @@ -124,12 +124,12 @@ function modifEtatAliasVirtuelsPostfix($pdo) { /** * Fonction de suppression d'un alias virtuel. */ -function supprAliasVirtuelsPostfix($pdo) { +function supprAliasVirtuelsPostfix($pdo,$suppr_alias_virtuel) { try { $req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur'; $sql=$pdo->prepare($req); - $sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']); + $sql->bindValue(':id_alias_virtuel',$suppr_alias_virtuel); $sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']); $sql->execute(); diff --git a/services/fonctions/bdd/domaines.php b/services/fonctions/bdd/domaines.php index f14006d..0f3c8a7 100644 --- a/services/fonctions/bdd/domaines.php +++ b/services/fonctions/bdd/domaines.php @@ -73,14 +73,14 @@ function changeDomaineDefautPostfix($pdo,$choix_domaine_defaut) { } else { // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur - die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage()); + die ("Erreur de requête de modification de préférence pour le domaine par défaut : ".$e->getMessage()); } } } /** - * Fonction d'ajout d'un alias virtuel. + * Fonction d'ajout d'un domaine. */ function ajoutDomainePostfix($pdo,$nom_domaine) { try { @@ -88,7 +88,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) { $req='INSERT INTO postfix_domaines (domaine,defaut,active) VALUES (:domaine,0,1)'; $sql=$pdo->prepare($req); - $sql->bindValue(':domaine',$nom_domaine); + $sql->bindValue(':domaine',substr(htmlspecialchars($nom_domaine),0,49)); $sql->execute(); if ($sql->rowCount() == 1){ @@ -105,7 +105,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) { if ($code_retour[0]=="23000") { // Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "domaine" de la table "postfix_domaines" est violée. Le domaine envoyé via le formulaire par l'administrateur a déjà été renseigné dans la base - header ("Location: /pages/gestion/administration.php?page=domaines&erreur=3"); + header ("Location: /pages/gestion/administration.php?page=domaines&erreur=7"); die(); } elseif ($code_retour[0]=="HY000") { @@ -115,7 +115,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) { } else { // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur - die ("Erreur de requête d'ajout d'alias virtuel : ".$e->getMessage()); + die ("Erreur de requête d'ajout d'un domaine : ".$e->getMessage()); } } } @@ -125,10 +125,10 @@ function ajoutDomainePostfix($pdo,$nom_domaine) { * Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des domaines d'un utilisateur. * Elle occasionnera peut-être des baisses de performance si un très grand nombre de domaines existe pour un utilisateur donné (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée). */ -function modifEtatDomainesPostfix($pdo) { +function modifEtatDomainesPostfix($pdo,$retour_form) { try { $compteModifs=0; - foreach ($_POST as $id_domaine => $etat_domaine) { + foreach ($retour_form as $id_domaine => $etat_domaine) { $req='UPDATE postfix_domaines SET active=:etat_domaine WHERE id=:id_domaine AND defaut!=1'; $sql=$pdo->prepare($req); @@ -148,7 +148,7 @@ function modifEtatDomainesPostfix($pdo) { } else { // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur - die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage()); + die ("Erreur de requête de modification d'état pour les domaines : ".$e->getMessage()); } } } @@ -156,12 +156,12 @@ function modifEtatDomainesPostfix($pdo) { /** * Fonction de suppression d'un domaine. */ -function supprDomainesPostfix($pdo) { +function supprDomainesPostfix($pdo,$suppr_domaine) { try { $req='DELETE FROM postfix_domaines WHERE id=:id_domaine AND defaut!=1'; $sql=$pdo->prepare($req); - $sql->bindValue(':id_domaine',$_GET['supprDomaine']); + $sql->bindValue(':id_domaine',$suppr_domaine); $sql->execute(); if($sql->rowCount() == 1){ @@ -182,7 +182,7 @@ function supprDomainesPostfix($pdo) { } else { // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur - die ("Erreur de requête de suppression d'un alias virtuel : ".$e->getMessage()); + die ("Erreur de requête de suppression d'un domaine : ".$e->getMessage()); } } } diff --git a/services/fonctions/bdd/listes_noires.php b/services/fonctions/bdd/listes_noires.php new file mode 100644 index 0000000..23b9873 --- /dev/null +++ b/services/fonctions/bdd/listes_noires.php @@ -0,0 +1,261 @@ +prepare($req); + $sql->execute(); + + $liste_entree_liste_noire_dst = $sql->fetchAll(); + return $liste_entree_liste_noire_dst; + } + catch (\Exception $e) { + die ("Erreur de requête de selection des entrées de liste noire destinataires pour \"$base\" : ".$e->getMessage()); + } +} + +/** + * Fonction listant les entrées de la liste noire des expéditeurs. + */ +function listeEntreeListeNoireExpPostfix($pdo) { + try { + $req = 'SELECT * FROM postfix_liste_noire_expediteurs'; + + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_entree_liste_noire_exp = $sql->fetchAll(); + 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()); + } +} + +/** + * Fonction d'ajout d'une entrée de liste noir destinataire. + */ +function ajoutEntreeListeNoireDstPostfix($pdo,$courriel_entree_liste_noire_dst,$action_entree_liste_noire_dst) { + try { + // Insertion de l'entrée de liste noire de destinataires renseignée par l'administrateur + $req='INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES (:courriel,:action,1)'; + $sql=$pdo->prepare($req); + $sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_dst),0,49)); + $sql->bindValue(':action',$action_entree_liste_noire_dst); + $sql->execute(); + + if ($sql->rowCount() == 1){ + return true; + } + + else { + return false; + } + } + catch (\Exception $e) { + // Récupération du code de retour de la commande SQLite + $code_retour=$sql->errorInfo(); + + if ($code_retour[0]=="23000") { + // Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "courriel" de la table "postfix_liste_noire_destinataires" est violée. L'adresse de destination envoyé via le formulaire par l'utilisateur a déjà été renseignée dans la base + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=12"); + die(); + } + elseif ($code_retour[0]=="HY000") { + // Code de retour envoyé par le pilote PDO SQLite lorsque la base de données n'est accessible qu'en lecture seule à www-data + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=4"); + die(); + } + else { + // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur + die ("Erreur de requête d'ajout de l'entrée de liste noire de destinataires : ".$e->getMessage()); + } + } +} + +/** + * Fonction d'ajout d'une entrée de liste noir expéditeurs. + */ +function ajoutEntreeListeNoireExpPostfix($pdo,$courriel_entree_liste_noire_exp,$code_retour_entree_liste_noire_exp) { + try { + // Insertion de l'entrée de liste noire d'expéditeurs renseignée par l'administrateur + $req='INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES (:courriel,:code_retour,"Votre message a été rejeté par le serveur car votre adresse est en liste noire.",1)'; + $sql=$pdo->prepare($req); + $sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_exp),0,49)); + $sql->bindValue(':code_retour',$code_retour_entree_liste_noire_exp); + $sql->execute(); + + if ($sql->rowCount() == 1){ + return true; + } + + else { + return false; + } + } + catch (\Exception $e) { + // Récupération du code de retour de la commande SQLite + $code_retour=$sql->errorInfo(); + if ($code_retour[0]=="23000") { + // Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "courriel" de la table "postfix_liste_noire_expediteurs" est violée. L'adresse de destination envoyé via le formulaire par l'utilisateur a déjà été renseignée dans la base + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=16"); + die(); + } + elseif ($code_retour[0]=="HY000") { + // Code de retour envoyé par le pilote PDO SQLite lorsque la base de données n'est accessible qu'en lecture seule à www-data + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=4"); + die(); + } + else { + // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur + die ("Erreur de requête d'ajout de l'entrée de liste noire d'expéditeurs : ".$e->getMessage()); + } + } +} + +/** + * Fonction d'activation/désactivation d'une entrée dans la liste noire des destinataires. + * Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des entrées de la liste noire des destinataires du serveur. + * Elle occasionnera peut-être des baisses de performance si un très grand d'entrées existent (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée). + */ +function modifEntreeListeNoireDstPostfix($pdo,$retour_form) { + try { + $compteModifs=0; + foreach ($retour_form as $id_entree_liste_noire_dst => $etat_entree_liste_noire_dst) { + $req='UPDATE postfix_liste_noire_destinataires SET active=:etat_entree_liste_noire_dst WHERE id=:id_entree_liste_noire_dst'; + + $sql=$pdo->prepare($req); + $sql->bindValue(':etat_entree_liste_noire_dst',$etat_entree_liste_noire_dst); + $sql->bindValue(':id_entree_liste_noire_dst',$id_entree_liste_noire_dst); + $sql->execute(); + } + } + catch (\Exception $e) { + // Récupération du code de retour de la commande SQLite + $code_retour=$sql->errorInfo(); + + if ($code_retour[0]=="HY000") { + // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=10"); + die(); + } + else { + // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur + die ("Erreur de requête de modification d'état pour l'entrée de liste noire de destinataires : ".$e->getMessage()); + } + } +} + +/** + * Fonction d'activation/désactivation d'une entrée dans la liste noire des expéditeurs. + * Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des entrées de la liste noire des expéditeurs du serveur. + * Elle occasionnera peut-être des baisses de performance si un très grand d'entrées existent (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée). + */ +function modifEntreeListeNoireExpPostfix($pdo,$retour_form) { + try { + $compteModifs=0; + foreach ($retour_form as $id_entree_liste_noire_exp => $etat_entree_liste_noire_exp) { + $req='UPDATE postfix_liste_noire_expediteurs SET active=:etat_entree_liste_noire_exp WHERE id=:id_entree_liste_noire_exp'; + + $sql=$pdo->prepare($req); + $sql->bindValue(':etat_entree_liste_noire_exp',$etat_entree_liste_noire_exp); + $sql->bindValue(':id_entree_liste_noire_exp',$id_entree_liste_noire_exp); + $sql->execute(); + } + } + catch (\Exception $e) { + // Récupération du code de retour de la commande SQLite + $code_retour=$sql->errorInfo(); + + if ($code_retour[0]=="HY000") { + // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=14"); + die(); + } + else { + // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur + die ("Erreur de requête de modification d'état pour l'entrée de liste noire d'expéditeurs : ".$e->getMessage()); + } + } +} + +/** + * Fonction de suppression d'une entrée de liste noire de destinataires. + */ +function supprEntreeListeNoireDstPostfix($pdo) { + try { + $req='DELETE FROM postfix_liste_noire_destinataires WHERE id=:id_entree_liste_noire_dst'; + + $sql=$pdo->prepare($req); + $sql->bindValue(':id_entree_liste_noire_dst',$_GET['supprEntreeListeNoireDst']); + $sql->execute(); + + if($sql->rowCount() == 1){ + return true; + } + else { + return false; + } + } + catch (\Exception $e) { + // Récupération du code de retour de la commande SQLite + $code_retour=$sql->errorInfo(); + + if ($code_retour[0]=="HY000") { + // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=4"); + die(); + } + else { + // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur + die ("Erreur de requête de suppression d'une entrée de liste noire de destinataires : ".$e->getMessage()); + } + } +} + +/** + * Fonction de suppression d'une entrée de liste noire d'expéditeurs. + */ +function supprEntreeListeNoireExpPostfix($pdo) { + try { + $req='DELETE FROM postfix_liste_noire_expediteurs WHERE id=:id_entree_liste_noire_exp'; + + $sql=$pdo->prepare($req); + $sql->bindValue(':id_entree_liste_noire_exp',$_GET['supprEntreeListeNoireExp']); + $sql->execute(); + + if($sql->rowCount() == 1){ + return true; + } + else { + return false; + } + } + catch (\Exception $e) { + // Récupération du code de retour de la commande SQLite + $code_retour=$sql->errorInfo(); + + if ($code_retour[0]=="HY000") { + // Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data + header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=4"); + die(); + } + else { + // En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur + die ("Erreur de requête de suppression d'une entrée de liste noire d'expéditeurs : ".$e->getMessage()); + } + } +} + +?> \ No newline at end of file diff --git a/services/fonctions/messages/messages.php b/services/fonctions/messages/messages.php new file mode 100644 index 0000000..6d6e03b --- /dev/null +++ b/services/fonctions/messages/messages.php @@ -0,0 +1,46 @@ + array( + 1 => "

Succès : alias virtuel créé avec succès.

", + 2 => "

Succès : alias virtuel modifiés avec succès.

", + 3 => "

Succès : alias virtuel supprimé avec succès.

", + 4 => "

Succès : utilisateur changé en ".$_SESSION['pseudo_utilisateur']." avec succès.

", + 5 => "

Succès : domaine créé avec succès.

", + 6 => "

Succès : domaine modifiés avec succès.

", + 7 => "

Succès : domaine supprimé avec succès.

", + 8 => "

Succès : domaine défini par défaut avec succès.

", + 9 => "

Succès : l'entrée de liste noire destiataires a été créée avec succès.

", + 10 => "

Succès : l'état de l'entrée de liste noire destiataires a été modifié avec succès.

", + 11 => "

Succès : l'entrée de liste noire destinataires a été supprimée avec succès.

", + 12 => "

Succès : l'entrée de liste noire expéditeurs a été créée avec succès.

", + 13 => "

Succès : l'état de l'entrée de liste noire expéditeurs a été modifié avec succès.

", + 14 => "

Succès : l'entrée de liste noire expéditeurs a été supprimée avec succès.

"), + "erreurs" => array( + + 1 => "

Erreur : aucun alias virtuel supprimé.

", + 2 => "

Erreur : aucun alias virtuel créé car une donnée est erronée ou manquante.

", + 3 => "

Erreur : L'alias virtuel est déjà existant.

", + 4 => "

Erreur : Code d'erreur générique (HY000) signifiant probablement que la base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire bdd appartiennent à www-data.

", + 5 => "

Erreur : aucun domaine supprimé.

", + 6 => "

Erreur : aucun domaine créé car une donnée est erronée ou manquante.

", + 7 => "

Erreur : le domaine est déjà existant.

", + 8 => "

Erreur : le domaine par défaut n'a pas été modifié.

", + 9 => "

Erreur : l'entrée de liste noire destinataires n'a pas été ajouté car une donnée est erronée ou manquante.

", + 10 => "

Erreur : l'état de l'entrée de liste noire destinataires n'a pas été modifié.

", + 11 => "

Erreur : l'entrée de liste noire destinataires n'a pas été supprimée.

", + 12 => "

Erreur : l'entrée de liste noire destinataires n'a pas été ajouté car elle est déjà existante.

", + 13 => "

Erreur : l'entrée de liste noire expéditeurs n'a pas été ajouté car une donnée est erronée ou manquante.

", + 14 => "

Erreur : l'état de l'entrée de liste noire expéditeurs n'a pas été modifié.

", + 15 => "

Erreur : l'entrée de liste noire expéditeurs n'a pas été supprimée.

", + 16 => "

Erreur : l'entrée de liste noire expéditeurs n'a pas été ajouté car elle est déjà existante.

") + ); + + echo $liste_messages[$type_message][$num_message]; +} + +?> \ No newline at end of file diff --git a/services/gestion/alias_virtuels.php b/services/gestion/alias_virtuels.php index defaec2..04cd6b0 100644 --- a/services/gestion/alias_virtuels.php +++ b/services/gestion/alias_virtuels.php @@ -61,11 +61,10 @@ _HEREDOC_; echo "$prefixe_utilisateur"; } ?> - + @ - $domaine) { echo "\n"; diff --git a/services/gestion/domaines.php b/services/gestion/domaines.php index eb1cf90..4b6ea06 100644 --- a/services/gestion/domaines.php +++ b/services/gestion/domaines.php @@ -46,6 +46,7 @@ $liste_domaines = listeDomainesPostfix($pdo); } ?> + diff --git a/services/gestion/listes_noires.php b/services/gestion/listes_noires.php index 5145c84..e3ea7fc 100644 --- a/services/gestion/listes_noires.php +++ b/services/gestion/listes_noires.php @@ -4,15 +4,112 @@ * Page de gestion importé par la page d'administration centrale permettant la gestion des listes noires. */ -/* -session_start(); -require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php"); -require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_entete.php"); -*/ +require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); + +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=2"); + die(); +} -?> +require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); +$liste_entrees_liste_noires_dst=listeEntreeListeNoireDstPostfix($pdo); +$liste_entrees_liste_noires_exp=listeEntreeListeNoireExpPostfix($pdo); + +/** + * Permet d'inclure la page d'administration des listes noires déstinataires ou expéditeurs dédiée. + */ + +echo <<<_heredoc_ +
+

Choisissez un type de liste noire à éditer :

+ Destinataires + Expéditeurs +_heredoc_; +if (isset($_GET['sousPage']) && !empty($_GET['sousPage'])) { + switch ($_GET['sousPage']) { + case 'destinataires': + echo <<<_HEREDOC_ +

Ajouter une entrée dans la liste noire des destinataires

+
+ + + + +

Entrées de la liste noire des destinataires du serveur de messagerie

+
+
CourtailCourtail Alias

".$liste_entrees_liste_noires_dst_valeurs['courriel']."

".$liste_entrees_liste_noires_dst_valeurs['action']."

Confirmer la suppression\n"; + } + } + catch (\Exception $e) { + die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage()); + } + echo <<<_HEREDOC_ + + + +_HEREDOC_; + break; + case 'expediteurs': + echo <<<_HEREDOC_ +

Ajouter une entrée dans la liste noire des expéditeurs

+
+ + + +
+ +

Entrées de la liste noire des expéditeurs du serveur de messagerie

+ +
+ + +
+_HEREDOC_; + break; + default: + echo "

Cette page n'existe pas.

"; + break; + } +} + +?> - \ No newline at end of file + +
\ No newline at end of file diff --git a/services/traitements/alias_virtuels/ajoutAliasVirtuels.php b/services/traitements/alias_virtuels/ajoutAliasVirtuels.php index b0aa9c5..53fd5a7 100644 --- a/services/traitements/alias_virtuels/ajoutAliasVirtuels.php +++ b/services/traitements/alias_virtuels/ajoutAliasVirtuels.php @@ -11,8 +11,15 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php"); -if (isset($_POST['nom_alias']) && isset($_POST['choix_domaine_alias']) && !empty($_POST['nom_alias']) && !empty($_POST['choix_domaine_alias'])) { - ajoutAliasVirtuelsPostfix($pdo); +// 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"); die(); } diff --git a/services/traitements/alias_virtuels/editEtatAliasVirtuels.php b/services/traitements/alias_virtuels/editEtatAliasVirtuels.php index 580f1c2..9944165 100644 --- a/services/traitements/alias_virtuels/editEtatAliasVirtuels.php +++ b/services/traitements/alias_virtuels/editEtatAliasVirtuels.php @@ -9,7 +9,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php"); -modifEtatAliasVirtuelsPostfix($pdo); +modifEtatAliasVirtuelsPostfix($pdo,$_POST); header ("Location: /pages/gestion/administration.php?page=alias&succes=2"); ?> \ No newline at end of file diff --git a/services/traitements/alias_virtuels/supprAliasVirtuels.php b/services/traitements/alias_virtuels/supprAliasVirtuels.php index b9edb73..12bc116 100644 --- a/services/traitements/alias_virtuels/supprAliasVirtuels.php +++ b/services/traitements/alias_virtuels/supprAliasVirtuels.php @@ -9,7 +9,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php"); -if(isset($_GET['supprAliasVirtuel']) && !empty($_GET['supprAliasVirtuel']) && supprAliasVirtuelsPostfix($pdo)) { +if(isset($_GET['supprAliasVirtuel']) && !empty($_GET['supprAliasVirtuel']) && supprAliasVirtuelsPostfix($pdo,$_GET['supprAliasVirtuel'])) { header ("Location: /pages/gestion/administration.php?page=alias&succes=3"); } else { diff --git a/services/traitements/domaines/editEtatDomaines.php b/services/traitements/domaines/editEtatDomaines.php index 0db531a..dc5c9a4 100644 --- a/services/traitements/domaines/editEtatDomaines.php +++ b/services/traitements/domaines/editEtatDomaines.php @@ -9,7 +9,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); -modifEtatDomainesPostfix($pdo); +modifEtatDomainesPostfix($pdo,$_POST); header ("Location: /pages/gestion/administration.php?page=domaines&succes=6"); ?> \ No newline at end of file diff --git a/services/traitements/domaines/supprDomaines.php b/services/traitements/domaines/supprDomaines.php index 75ab4bd..5961d6e 100644 --- a/services/traitements/domaines/supprDomaines.php +++ b/services/traitements/domaines/supprDomaines.php @@ -9,7 +9,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges testPrivileges(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); -if(isset($_GET['supprDomaine']) && !empty($_GET['supprDomaine']) && supprDomainesPostfix($pdo)) { +if(isset($_GET['supprDomaine']) && !empty($_GET['supprDomaine']) && supprDomainesPostfix($pdo,$_GET['supprDomaine'])) { header ("Location: /pages/gestion/administration.php?page=domaines&succes=7"); } else { diff --git a/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php b/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php new file mode 100644 index 0000000..f006f21 --- /dev/null +++ b/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php b/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php new file mode 100644 index 0000000..69e6603 --- /dev/null +++ b/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php b/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php new file mode 100644 index 0000000..62e017e --- /dev/null +++ b/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php b/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php new file mode 100644 index 0000000..9f22dd1 --- /dev/null +++ b/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php @@ -0,0 +1,30 @@ + \ No newline at end of file diff --git a/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php b/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php new file mode 100644 index 0000000..d9f6462 --- /dev/null +++ b/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php b/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php new file mode 100644 index 0000000..c5b076a --- /dev/null +++ b/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php @@ -0,0 +1,19 @@ + \ No newline at end of file