Ajout de la fonctionnalité d'exportation des alias virtuels d'un utilisateur

pull/7/head
ycharbi 3 years ago
parent b60bf87f07
commit 0c4db52805

@ -0,0 +1,41 @@
<?php
/**
* Page de fonctions permettant la la sauvegarde et la restauration des données de la base de la messagerie.
*/
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
/**
* Fonction générant un fichier CSV avec le contenu des alias virtuels d'un utilisateur.
* Ce fichier est créé à la volée et se popose à l'utilisateur pour téléchargement.
*/
function exportAliasVirtuelsUtilisateur($pdo,$utilisateur) {
try {
// Filtre des alias virtuels de l'utilisateur courant
$req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination';
$sql=$pdo->prepare($req);
$sql->bindValue(':destination',$utilisateur);
$sql->execute();
$liste_alias_virtuels = $sql->fetchAll(PDO::FETCH_ASSOC);
$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");
foreach ($liste_alias_virtuels as $alias_virtuel => $champ_alias_virtuel) {
echo implode(":", $champ_alias_virtuel)."\n";
}
// 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 alias virtuels utilisateur en CSV : ".$e->getMessage());
}
}
?>

@ -82,6 +82,29 @@ if ($_SESSION['privilege_utilisateur']=="administrateur") {
_HEREDOC_;
}
echo <<<_HEREDOC_
<h5>Sauvegarde et restauration des données</h5>
<p>Sauvegarde</p>
<p>Sauvegarde des alias virtuels de l'utilisateur</p>
<form action="/services/traitements/import_export/exportAliasVirtuelsUtilisateur.php" method="post">
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
</form>
_HEREDOC_;
if ($_SESSION['privilege_utilisateur']=="administrateur") {
echo <<<_HEREDOC_
<p>Sauvegarde de la base de données</p>
<form action="/services/traitements/utilisateurs/exportDonneesBdd.php" method="post">
<input type="checkbox" name="export_alias_virtuels">
<input type="checkbox" name="export_domaines">
<input type="checkbox" name="export_listes_noires_destinataires">
<input type="checkbox" name="export_listes_noires_exediteurs">
<input type="checkbox" name="export_utilisateurs">
<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>

@ -0,0 +1,18 @@
<?php
/**
* Page de traitement permettant l'export des alias virtuels d'un utilisateur.
* Elle est appelée par un bouton de la page des paramètres.
*/
session_start();
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
testPrivileges();
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/import_export.php");
exportAliasVirtuelsUtilisateur($pdo,$_SESSION['pseudo_utilisateur']);
// La suite n'est pas interprété en temps normal
header ("Location: /pages/gestion/administration.php?page=parametres");
die();
?>
Loading…
Cancel
Save