Ajout de la fonctionnalité permettant l'import des données de la base précédemment exportés via la fonction idoine + correction du formatage des utilisateurs présents dans le fichier de provision SQL pour Docker + changement de formatage des entêtes de type de données pour la sauvegarde des données de la base
This commit is contained in:
@@ -59,7 +59,7 @@ function exportDonneesMessagerie($pdo,$types_donnees_a_exporter) {
|
||||
|
||||
$liste_alias_virtuels = $sql->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo "#~// Alias vituels\n";
|
||||
echo "#~// Alias_vituels\n";
|
||||
foreach ($liste_alias_virtuels as $alias_virtuel => $champ_alias_virtuel) {
|
||||
echo implode(":", $champ_alias_virtuel)."\n";
|
||||
}
|
||||
@@ -83,7 +83,7 @@ function exportDonneesMessagerie($pdo,$types_donnees_a_exporter) {
|
||||
|
||||
$liste_liste_noire_destinataires = $sql->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo "#~// Liste noire destinataires\n";
|
||||
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";
|
||||
}
|
||||
@@ -95,7 +95,7 @@ function exportDonneesMessagerie($pdo,$types_donnees_a_exporter) {
|
||||
|
||||
$liste_liste_noire_expediteurs = $sql->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo "#~// Liste noire expéditeur\n";
|
||||
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";
|
||||
}
|
||||
@@ -167,5 +167,157 @@ function importAliasVirtuelsUtilisateur($pdo,$alias_virtuel,$utilisateur,$active
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fonction important les données sauvegardées dans un fichier CSV par un administrateur avec la fonction exportDonneesMessagerie().
|
||||
*/
|
||||
function importDonneesMessagerie($pdo,$type_donnees_csv,$donnees_csv) {
|
||||
try {
|
||||
switch ($type_donnees_csv) {
|
||||
case "alias_virtuels":
|
||||
$req = 'INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES (:alias_virtuel,:destination,:active)';
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':alias_virtuel',htmlspecialchars($donnees_csv[1]));
|
||||
$sql->bindValue(':destination',htmlspecialchars($donnees_csv[2]));
|
||||
$sql->bindValue(':active',$donnees_csv[3]);
|
||||
$sql->execute();
|
||||
|
||||
if ($sql->rowCount() == 1){
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "domaines":
|
||||
$req = 'INSERT INTO postfix_domaines (domaine,defaut,active) VALUES (:domaine,:defaut,:active)';
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':domaine',htmlspecialchars($donnees_csv[1]));
|
||||
$sql->bindValue(':defaut',htmlspecialchars($donnees_csv[2]));
|
||||
$sql->bindValue(':active',$donnees_csv[3]);
|
||||
$sql->execute();
|
||||
|
||||
if ($sql->rowCount() == 1){
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "liste_noire_destinataires":
|
||||
$req = 'INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES (:courriel,:action,:active)';
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':courriel',htmlspecialchars($donnees_csv[1]));
|
||||
$sql->bindValue(':action',htmlspecialchars($donnees_csv[2]));
|
||||
$sql->bindValue(':active',$donnees_csv[3]);
|
||||
$sql->execute();
|
||||
|
||||
if ($sql->rowCount() == 1){
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "liste_noire_expediteurs":
|
||||
$req = 'INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES (:courriel,:code_retour,:message,:active)';
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':courriel',htmlspecialchars($donnees_csv[1]));
|
||||
$sql->bindValue(':code_retour',htmlspecialchars($donnees_csv[2]));
|
||||
$sql->bindValue(':message',htmlspecialchars($donnees_csv[3]));
|
||||
$sql->bindValue(':active',$donnees_csv[4]);
|
||||
$sql->execute();
|
||||
|
||||
if ($sql->rowCount() == 1){
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "utilisateurs":
|
||||
$req = 'INSERT INTO postfix_utilisateurs (utilisateur,mot_de_passe,nom_complet,rep_perso,uid,gid,privilege,prefixe,active) VALUES (:utilisateur,:mot_de_passe,:nom_complet,:rep_perso,:uid,:gid,:privilege,:prefixe,:active)';
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':utilisateur',htmlspecialchars($donnees_csv[1]));
|
||||
$sql->bindValue(':mot_de_passe',htmlspecialchars($donnees_csv[2]));
|
||||
$sql->bindValue(':nom_complet',htmlspecialchars($donnees_csv[3]));
|
||||
$sql->bindValue(':rep_perso',$donnees_csv[4]);
|
||||
$sql->bindValue(':uid',$donnees_csv[5]);
|
||||
$sql->bindValue(':gid',$donnees_csv[6]);
|
||||
$sql->bindValue(':privilege',$donnees_csv[7]);
|
||||
$sql->bindValue(':prefixe',$donnees_csv[8]);
|
||||
$sql->bindValue(':active',$donnees_csv[9]);
|
||||
$sql->execute();
|
||||
|
||||
if ($sql->rowCount() == 1){
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
die ("Erreur de requête d'export des données de la base en CSV : ".$e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fonction de purge des tables permettant une importation fidèle des données contenues dans un ficher d'export CSV généré par la fonction exportDonneesMessagerie().
|
||||
*/
|
||||
function purgeTable($pdo,$table) {
|
||||
try {
|
||||
switch ($table) {
|
||||
case "postfix_alias_virtuels":
|
||||
$sql = $pdo->prepare('DELETE FROM postfix_alias_virtuels');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('UPDATE sqlite_sequence SET seq = 0 WHERE name = "postfix_alias_virtuels"');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('VACUUM');
|
||||
$sql->execute();
|
||||
break;
|
||||
case "postfix_domaines":
|
||||
$sql = $pdo->prepare('DELETE FROM postfix_domaines');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('UPDATE sqlite_sequence SET seq = 0 WHERE name = "postfix_domaines"');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('VACUUM');
|
||||
$sql->execute();
|
||||
break;
|
||||
case "postfix_liste_noire_destinataires":
|
||||
$sql = $pdo->prepare('DELETE FROM postfix_liste_noire_destinataires');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('UPDATE sqlite_sequence SET seq = 0 WHERE name = "postfix_liste_noire_destinataires"');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('VACUUM');
|
||||
$sql->execute();
|
||||
break;
|
||||
case "postfix_liste_noire_expediteurs":
|
||||
$sql = $pdo->prepare('DELETE FROM postfix_liste_noire_expediteurs');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('UPDATE sqlite_sequence SET seq = 0 WHERE name = "postfix_liste_noire_expediteurs"');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('VACUUM');
|
||||
$sql->execute();
|
||||
break;
|
||||
case "postfix_utilisateurs":
|
||||
$sql = $pdo->prepare('DELETE FROM postfix_utilisateurs');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('UPDATE sqlite_sequence SET seq = 0 WHERE name = "postfix_utilisateurs"');
|
||||
$sql->execute();
|
||||
$sql = $pdo->prepare('VACUUM');
|
||||
$sql->execute();
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
die ("Erreur de requête de purge d'une table : ".$e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user