diff --git a/services/fonctions/bdd/alias_virtuels.php b/services/fonctions/bdd/alias_virtuels.php index b486ad2..1f02a2f 100644 --- a/services/fonctions/bdd/alias_virtuels.php +++ b/services/fonctions/bdd/alias_virtuels.php @@ -18,7 +18,7 @@ function listeAliasVirtuelsPostfix($pdo) { $sql->bindValue(':destination',$_SESSION['pseudo_utilisateur']); $sql->execute(); - $liste_alias_virtuels = $sql->fetchAll(); + $liste_alias_virtuels = $sql->fetchAll(PDO::FETCH_ASSOC); return $liste_alias_virtuels; } catch (\Exception $e) { diff --git a/services/fonctions/bdd/domaines.php b/services/fonctions/bdd/domaines.php index ad45857..c6fd996 100644 --- a/services/fonctions/bdd/domaines.php +++ b/services/fonctions/bdd/domaines.php @@ -16,7 +16,7 @@ function listeDomainesPostfix($pdo) { $sql=$pdo->prepare($req); $sql->execute(); - $liste_domaines = $sql->fetchAll(); + $liste_domaines = $sql->fetchAll(PDO::FETCH_ASSOC); return $liste_domaines; } catch (\Exception $e) { diff --git a/services/fonctions/bdd/import_export.php b/services/fonctions/bdd/import_export.php index dddef2c..3dce5f2 100644 --- a/services/fonctions/bdd/import_export.php +++ b/services/fonctions/bdd/import_export.php @@ -124,4 +124,48 @@ function exportDonneesMessagerie($pdo,$types_donnees_a_exporter) { } } +/** + * Fonction important un fichier d'export d'alias virtuels utilisateur en CSV vers la base de données. + */ +function importAliasVirtuelsUtilisateur($pdo,$alias_virtuel,$utilisateur,$active) { + try { + // Insertion de l'alias virtuels parcouru dans le fichier CSV soumis pas l'utilisateur + // Les contrôles de données ont étés effectués dans la page de traitement + $req = 'INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES (:alias_virtuel,:destination,:active)'; + $sql=$pdo->prepare($req); + $sql->bindValue(':alias_virtuel',htmlspecialchars($alias_virtuel)); + $sql->bindValue(':destination',htmlspecialchars($utilisateur)); + $sql->bindValue(':active',$active); + $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 "postif_alias_virtuels" est violée. Dans la mesure ou un contrôle d'unicité est effectué par la page de traitement, cette erreur signifie qu'un bogue est présent dans celui-ci + header ("Location: /pages/gestion/administration.php?page=alias&erreur=3"); + 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=alias&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'export des alias virtuels utilisateur en CSV : ".$e->getMessage()); + } + } +} + + ?> \ No newline at end of file diff --git a/services/fonctions/bdd/listes_noires.php b/services/fonctions/bdd/listes_noires.php index 9baa6fb..b1ced4d 100644 --- a/services/fonctions/bdd/listes_noires.php +++ b/services/fonctions/bdd/listes_noires.php @@ -17,7 +17,7 @@ function listeEntreeListeNoireDstPostfix($pdo) { $sql=$pdo->prepare($req); $sql->execute(); - $liste_entree_liste_noire_dst = $sql->fetchAll(); + $liste_entree_liste_noire_dst = $sql->fetchAll(PDO::FETCH_ASSOC); return $liste_entree_liste_noire_dst; } catch (\Exception $e) { @@ -35,7 +35,7 @@ function listeEntreeListeNoireExpPostfix($pdo) { $sql=$pdo->prepare($req); $sql->execute(); - $liste_entree_liste_noire_exp = $sql->fetchAll(); + $liste_entree_liste_noire_exp = $sql->fetchAll(PDO::FETCH_ASSOC); return $liste_entree_liste_noire_exp; } catch (\Exception $e) { diff --git a/services/fonctions/bdd/utilisateurs.php b/services/fonctions/bdd/utilisateurs.php index 8f56f97..0085ca1 100644 --- a/services/fonctions/bdd/utilisateurs.php +++ b/services/fonctions/bdd/utilisateurs.php @@ -15,7 +15,7 @@ function listeUtilisateursPostfix($pdo) { $sql=$pdo->prepare($req); $sql->execute(); - $liste_utilisateurs = $sql->fetchAll(); + $liste_utilisateurs = $sql->fetchAll(PDO::FETCH_ASSOC); return $liste_utilisateurs; } catch (\Exception $e) { diff --git a/services/fonctions/messages/messages.php b/services/fonctions/messages/messages.php index a20c7a1..f44bbd7 100644 --- a/services/fonctions/messages/messages.php +++ b/services/fonctions/messages/messages.php @@ -33,7 +33,8 @@ function retourneMessage($type_message,$num_message) { 14 => "
Restauration
+Restauration des alias virtuels de l'utilisateur
+ +_HEREDOC_; + ?> \ No newline at end of file diff --git a/services/traitements/import_export/importAliasVirtuelsUtilisateur.php b/services/traitements/import_export/importAliasVirtuelsUtilisateur.php index e69de29..8c479ed 100644 --- a/services/traitements/import_export/importAliasVirtuelsUtilisateur.php +++ b/services/traitements/import_export/importAliasVirtuelsUtilisateur.php @@ -0,0 +1,65 @@ + \ No newline at end of file