diff --git a/services/fonctions/bdd/import_export.php b/services/fonctions/bdd/import_export.php index 0e7cb27..dddef2c 100644 --- a/services/fonctions/bdd/import_export.php +++ b/services/fonctions/bdd/import_export.php @@ -23,8 +23,8 @@ function exportAliasVirtuelsUtilisateur($pdo,$utilisateur) { $nom_fichier_csv="Alias-virtuels_".$utilisateur."_".date('d-m-Y').".csv"; // Entêtes HTTP permettant le téléchargement à la volée du CSV - header("Content-Disposition: attachment; filename=\"$nom_fichier_csv\""); - header("Content-Type: text/csv"); + header("Content-Disposition: attachment; filename=\"$nom_fichier_csv\""); + header("Content-Type: text/csv"); foreach ($liste_alias_virtuels as $alias_virtuel => $champ_alias_virtuel) { echo implode(":", $champ_alias_virtuel)."\n"; @@ -38,4 +38,90 @@ function exportAliasVirtuelsUtilisateur($pdo,$utilisateur) { } } +/** + * Fonction générant un fichier CSV avec le contenu de la base Sqlite demandé par un administrateur. + * Ce fichier est créé à la volée et se popose à l'administrateur pour téléchargement. + */ +function exportDonneesMessagerie($pdo,$types_donnees_a_exporter) { + try { + $nom_fichier_csv="Données_Courtail_".date('d-m-Y').".csv"; + + // Entêtes HTTP permettant le téléchargement à la volée du CSV + header("Content-Disposition: attachment; filename=\"$nom_fichier_csv\""); + header("Content-Type: text/csv"); + + foreach ($types_donnees_a_exporter as $cle_donnees_a_exporter => $type_donnee_a_exporter) { + switch ($type_donnee_a_exporter) { + case "alias_virtuels": + $req = 'SELECT * FROM postfix_alias_virtuels'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_alias_virtuels = $sql->fetchAll(PDO::FETCH_ASSOC); + + echo "#~// Alias vituels\n"; + foreach ($liste_alias_virtuels as $alias_virtuel => $champ_alias_virtuel) { + echo implode(":", $champ_alias_virtuel)."\n"; + } + break; + case "domaines": + $req = 'SELECT * FROM postfix_domaines'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_domaines = $sql->fetchAll(PDO::FETCH_ASSOC); + + echo "#~// Domaines\n"; + foreach ($liste_domaines as $domaine => $champ_domaine) { + echo implode(":", $champ_domaine)."\n"; + } + break; + case "liste_noire_destinataires": + $req = 'SELECT * FROM postfix_liste_noire_destinataires'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_liste_noire_destinataires = $sql->fetchAll(PDO::FETCH_ASSOC); + + echo "#~// Liste noire destinataires\n"; + foreach ($liste_liste_noire_destinataires as $liste_noire_destinataire => $champ_liste_noire_destinataire) { + echo implode(":", $champ_liste_noire_destinataire)."\n"; + } + break; + case "liste_noire_expediteurs": + $req = 'SELECT * FROM postfix_liste_noire_expediteurs'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_liste_noire_expediteurs = $sql->fetchAll(PDO::FETCH_ASSOC); + + echo "#~// Liste noire expéditeur\n"; + foreach ($liste_liste_noire_expediteurs as $liste_noire_expediteur => $champ_liste_noire_expediteur) { + echo implode(":", $champ_liste_noire_expediteur)."\n"; + } + break; + case "utilisateurs": + $req = 'SELECT * FROM postfix_utilisateurs'; + $sql=$pdo->prepare($req); + $sql->execute(); + + $liste_utilisateurs = $sql->fetchAll(PDO::FETCH_ASSOC); + + echo "#~// Utilisateurs\n"; + foreach ($liste_utilisateurs as $liste_utilisateur => $champ_utilisateur) { + echo implode(":", $champ_utilisateur)."\n"; + } + break; + } + + } + + // Le fait de tuer la page enclenche la demande de téléchargement à l'utilisateur qui ne quitte visuellement jamais la page des paramètres + die(); + } + catch (\Exception $e) { + die ("Erreur de requête d'export des données de la base en CSV : ".$e->getMessage()); + } +} + ?> \ No newline at end of file diff --git a/services/gestion/parametres.php b/services/gestion/parametres.php index 818b725..1722a34 100644 --- a/services/gestion/parametres.php +++ b/services/gestion/parametres.php @@ -94,13 +94,18 @@ _HEREDOC_; if ($_SESSION['privilege_utilisateur']=="administrateur") { echo <<<_HEREDOC_

Sauvegarde de la base de données

-
- - - - - - + + + + + + + + + + + +
_HEREDOC_; } diff --git a/services/traitements/domaines/ajoutDomaines.php b/services/traitements/domaines/ajoutDomaines.php index 26fc5ec..a16a796 100644 --- a/services/traitements/domaines/ajoutDomaines.php +++ b/services/traitements/domaines/ajoutDomaines.php @@ -8,7 +8,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); if (isset($_POST['nom_domaine']) && !empty($_POST['nom_domaine'])) { diff --git a/services/traitements/domaines/changeDomaineDefaut.php b/services/traitements/domaines/changeDomaineDefaut.php index 4ee69b5..ee9ec5d 100644 --- a/services/traitements/domaines/changeDomaineDefaut.php +++ b/services/traitements/domaines/changeDomaineDefaut.php @@ -7,7 +7,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); $liste_domaines = listeDomainesPostfix($pdo); diff --git a/services/traitements/domaines/editEtatDomaines.php b/services/traitements/domaines/editEtatDomaines.php index dc5c9a4..6ebfe49 100644 --- a/services/traitements/domaines/editEtatDomaines.php +++ b/services/traitements/domaines/editEtatDomaines.php @@ -6,7 +6,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); modifEtatDomainesPostfix($pdo,$_POST); diff --git a/services/traitements/domaines/supprDomaines.php b/services/traitements/domaines/supprDomaines.php index 5961d6e..60c4d75 100644 --- a/services/traitements/domaines/supprDomaines.php +++ b/services/traitements/domaines/supprDomaines.php @@ -6,7 +6,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php"); if(isset($_GET['supprDomaine']) && !empty($_GET['supprDomaine']) && supprDomainesPostfix($pdo,$_GET['supprDomaine'])) { diff --git a/services/traitements/import_export/exportDonneesBdd.php b/services/traitements/import_export/exportDonneesBdd.php index e69de29..c0d094d 100644 --- a/services/traitements/import_export/exportDonneesBdd.php +++ b/services/traitements/import_export/exportDonneesBdd.php @@ -0,0 +1,37 @@ + \ No newline at end of file diff --git a/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php b/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php index f006f21..e2bb545 100644 --- a/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php +++ b/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php @@ -8,7 +8,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); if (isset($_POST['courriel_entree_liste_noire_dst']) && isset($_POST['choix_action_entree_liste_noire_dst']) && !empty($_POST['courriel_entree_liste_noire_dst']) && !empty($_POST['choix_action_entree_liste_noire_dst'])) { diff --git a/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php b/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php index 69e6603..64f2227 100644 --- a/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php +++ b/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php @@ -6,7 +6,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); if (isset($_POST) && !empty($_POST)) { diff --git a/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php b/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php index 62e017e..055f319 100644 --- a/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php +++ b/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php @@ -6,7 +6,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); if(isset($_GET['supprEntreeListeNoireDst']) && !empty($_GET['supprEntreeListeNoireDst']) && supprEntreeListeNoireDstPostfix($pdo,$_GET['supprEntreeListeNoireDst'])) { diff --git a/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php b/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php index 9f22dd1..444a9a2 100644 --- a/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php +++ b/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php @@ -8,7 +8,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); if (isset($_POST['courriel_entree_liste_noire_exp']) && isset($_POST['choix_code_retour_entree_liste_noire_exp']) && !empty($_POST['courriel_entree_liste_noire_exp']) && !empty($_POST['choix_code_retour_entree_liste_noire_exp'])) { diff --git a/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php b/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php index d9f6462..34c25de 100644 --- a/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php +++ b/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php @@ -6,7 +6,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); if (isset($_POST) && !empty($_POST)) { diff --git a/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php b/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php index c5b076a..b8ece39 100644 --- a/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php +++ b/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php @@ -6,7 +6,10 @@ session_start(); require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php"); if(isset($_GET['supprEntreeListeNoireExp']) && !empty($_GET['supprEntreeListeNoireExp']) && supprEntreeListeNoireExpPostfix($pdo,$_GET['supprEntreeListeNoireExp'])) { diff --git a/services/traitements/utilisateurs/changePrefixeUtilisateur.php b/services/traitements/utilisateurs/changePrefixeUtilisateur.php index fe89286..0da1460 100644 --- a/services/traitements/utilisateurs/changePrefixeUtilisateur.php +++ b/services/traitements/utilisateurs/changePrefixeUtilisateur.php @@ -8,7 +8,10 @@ session_start(); require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php"); -testPrivileges(); +if (testPrivileges()!="administrateur") { + header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18"); + die(); +} require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php"); if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouveau_prefixe'])) {