diff --git a/outils/postfix.sql b/outils/postfix.sql
index e98993b..757d7df 100644
--- a/outils/postfix.sql
+++ b/outils/postfix.sql
@@ -13,6 +13,7 @@ CREATE TABLE IF NOT EXISTS postfix_alias_virtuels (
CREATE TABLE IF NOT EXISTS postfix_domaines (
id INTEGER PRIMARY KEY AUTOINCREMENT,
domaine TEXT NOT NULL UNIQUE,
+ defaut INTEGER UNIQUE,
active INTEGER
);
CREATE TABLE IF NOT EXISTS postfix_liste_noire_destinataires (
@@ -37,4 +38,4 @@ CREATE TABLE IF NOT EXISTS postfix_utilisateurs (
gid INTEGER NOT NULL,
privilege TEXT NOT NULL,
active INTEGER
-);
+);
\ No newline at end of file
diff --git a/pages/gestion/administration.php b/pages/gestion/administration.php
index 7050acd..21da11e 100644
--- a/pages/gestion/administration.php
+++ b/pages/gestion/administration.php
@@ -13,6 +13,33 @@ require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_menu.php");
var_dump($_SESSION);
echo "";*/
+/**
+ * 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;
+ }
+}
+elseif (isset($_GET['succes']) && !empty($_GET['succes'])){
+ switch ($_GET['succes']) {
+ case 1:
+ echo "Succès : alias virtuel supprimé avec succès.
";
+ break;
+ case 2:
+ echo "Succès : alias virtuel modifiés avec succès.
";
+ break;
+ case 3:
+ echo "Succès : alias virtuel créé avec succès.
";
+ break;
+ }
+}
+
if (isset($_GET['page']) && !empty($_GET['page'])) {
switch ($_GET['page']) {
case 'alias':
@@ -29,4 +56,4 @@ if (isset($_GET['page']) && !empty($_GET['page'])) {
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php");
-?>
+?>
\ No newline at end of file
diff --git a/services/actions/ajoutAliasVirtuels.php b/services/actions/ajoutAliasVirtuels.php
new file mode 100644
index 0000000..e2771a8
--- /dev/null
+++ b/services/actions/ajoutAliasVirtuels.php
@@ -0,0 +1,26 @@
+";
+var_dump($_POST);
+echo "";
+
+if (isset($_POST['prefix_alias']) && isset($_POST['nom_alias']) && isset($_POST['choix_domaine_alias']) && !empty($_POST['nom_alias']) && !empty($_POST['choix_domaine_alias'])) {
+ ajoutAliasVirtuelsPostfix($pdo);
+ header ("Location: /pages/gestion/administration.php?page=alias&succes=3");
+}
+else {
+ header ("Location: /pages/gestion/administration.php?page=alias&erreur=2");
+}
+/*if(ajoutAliasVirtuelsPostfix($pdo)) {
+ header ("Location: /pages/gestion/administration.php?page=alias&succes=1");
+}
+else {
+ header ("Location: /pages/gestion/administration.php?page=alias&erreur=1");
+}*/
+
+
+?>
\ No newline at end of file
diff --git a/services/actions/editEtatAliasVirtuels.php b/services/actions/editEtatAliasVirtuels.php
new file mode 100644
index 0000000..5bf0340
--- /dev/null
+++ b/services/actions/editEtatAliasVirtuels.php
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/services/actions/supprAliasVirtuels.php b/services/actions/supprAliasVirtuels.php
new file mode 100644
index 0000000..5c4b0c0
--- /dev/null
+++ b/services/actions/supprAliasVirtuels.php
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/services/bdd/alias_virtuels.php b/services/bdd/alias_virtuels.php
index 9911f0b..66769d2 100644
--- a/services/bdd/alias_virtuels.php
+++ b/services/bdd/alias_virtuels.php
@@ -4,7 +4,14 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
function listeAliasVirtuelsPostfix($pdo) {
try {
- $req = $pdo->query('SELECT * FROM postfix_alias_virtuels');
+ //$req = $pdo->query('SELECT * FROM postfix_alias_virtuels');
+
+ // Filtre des alias virtuels de l'utilisateur courant
+ /*$reqDomaineDefaut = $pdo->query('SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1');
+ foreach ($reqDomaineDefaut as $cle => $domaineDefaut) {
+ $req = $pdo->query('SELECT * FROM postfix_alias_virtuels WHERE courriel='."\"$_SESSION[pseudo_utilisateur]".'@'."$domaineDefaut[domaine]\"");
+ }*/
+ $req = $pdo->query('SELECT * FROM postfix_alias_virtuels WHERE courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)');
$liste_alias_virtuels = array();
foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
array_push($liste_alias_virtuels,$alias_virtuels);
@@ -12,8 +19,132 @@ function listeAliasVirtuelsPostfix($pdo) {
return $liste_alias_virtuels;
}
catch (\Exception $e) {
- die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());
+ die ("Erreur de requête de selection des alias virtuels : ".$e->getMessage());
+ }
+}
+
+function ajoutAliasVirtuelsPostfix($pdo) {
+ try {
+ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/domaines.php");
+ //foreach ($_GET as $id_alias_virtuel => $etat_alias_virtuel) {
+ //echo "$id_alias_virtuel et $etat_alias_virtuel";
+ //echo 'UPDATE postfix_alias_virtuels SET active='."$etat_alias_virtuel".' WHERE id='."$id_alias_virtuel".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
+ //die();
+ echo "";
+ var_dump($_POST);
+ echo "
";
+ //echo afficheDomaineDefautPostfix($pdo);
+ //die();
+ //$req = $pdo->query('DELETE FROM postfix_alias_virtuels WHERE id='."$_GET[supprAliasVirtuel]".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)');
+ $req='INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES (:courriel,:alias_virtuel,1)';
+ $sql=$pdo->prepare($req);
+ //$sql->bindParam(':id',$_GET['supprAliasVirtuel'],':pseudo_utilisateur',$_SESSION['pseudo_utilisateur]',':@','@');
+
+ //Vérifier que l'utilisateur choisi dans la liste est un choix légitime.
+ $sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']."@".afficheDomaineDefautPostfix($pdo));
+ ////$sql->bindValue(':courriel',"toto@toto.fr");
+ if (!empty($_POST['prefix_alias'])) {
+ $separateur_prefix_alias=".";
+ }
+ $sql->bindValue(':alias_virtuel',$_POST['prefix_alias'].$separateur_prefix_alias.$_POST['nom_alias']."@".$_POST['choix_domaine_alias']);
+ ////$sql->bindValue(':alias_virtuel',"y.charbi@toto.fr");
+ //$sql->bindValue(':@','@');
+ $sql->execute();
+ if($sql->rowCount() == 1){
+ return true;
+ }
+ /*if($sql->execute()){
+ echo "Successfully deleted record ";
+ echo "
Number of rows deleted : ".$sql->rowCount();
+ }*/
+ else{
+ return false;
+ }
+ //}
+ //die();
+
+ /*/$liste_alias_virtuels = array();
+ foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
+ array_push($liste_alias_virtuels,$alias_virtuels);
+ }*/
+ }
+ catch (\Exception $e) {
+ die ("Erreur de requête d'ajout d'alias virtuel : ".$e->getMessage());
+ }
+}
+
+
+//Tester les injections SQL
+function modifEtatAliasVirtuelsPostfix($pdo) {
+ try {
+ $compteModifs=0;
+ foreach ($_POST as $id_alias_virtuel => $etat_alias_virtuel) {
+ //echo "$id_alias_virtuel et $etat_alias_virtuel";
+ //echo 'UPDATE postfix_alias_virtuels SET active='."$etat_alias_virtuel".' WHERE id='."$id_alias_virtuel".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
+ //die();
+
+ //$req = $pdo->query('UPDATE postfix_alias_virtuels SET active='."$etat_alias_virtuel".' WHERE id='."$id_alias_virtuel".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)');
+ $req='UPDATE postfix_alias_virtuels SET active=:etat_alias_virtuel WHERE id=:id_alias_virtuel AND courriel=:pseudo_utilisateur||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
+ $sql=$pdo->prepare($req);
+ $sql->bindValue(':etat_alias_virtuel',$etat_alias_virtuel);
+ $sql->bindValue(':id_alias_virtuel',$id_alias_virtuel);
+ $sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']."@");
+ $sql->execute();
+ /*return true;
+ die();
+ }
+ else{
+ return false;
+ }*/
+ }
+ //die();
+
+ /*/$liste_alias_virtuels = array();
+ foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
+ array_push($liste_alias_virtuels,$alias_virtuels);
+ }*/
+ }
+ catch (\Exception $e) {
+ die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage());
+ }
+}
+
+function supprAliasVirtuelsPostfix($pdo) {
+ try {
+ //foreach ($_GET as $id_alias_virtuel => $etat_alias_virtuel) {
+ //echo "$id_alias_virtuel et $etat_alias_virtuel";
+ //echo 'UPDATE postfix_alias_virtuels SET active='."$etat_alias_virtuel".' WHERE id='."$id_alias_virtuel".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
+ //die();
+ echo $_GET['supprAliasVirtuel'];
+ //$req = $pdo->query('DELETE FROM postfix_alias_virtuels WHERE id='."$_GET[supprAliasVirtuel]".' AND courriel='."\"$_SESSION[pseudo_utilisateur]".'@"'.'||(SELECT domaine FROM postfix_domaines WHERE defaut=1)');
+ $req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND courriel=:pseudo_utilisateur||(SELECT domaine FROM postfix_domaines WHERE defaut=1)';
+ $sql=$pdo->prepare($req);
+ //$sql->bindParam(':id',$_GET['supprAliasVirtuel'],':pseudo_utilisateur',$_SESSION['pseudo_utilisateur]',':@','@');
+ $sql->bindValue(':id_alias_virtuel',$_GET['supprAliasVirtuel']);
+ $sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']."@");
+ //$sql->bindValue(':@','@');
+ $sql->execute();
+ if($sql->rowCount() == 1){
+ return true;
+ }
+ /*if($sql->execute()){
+ echo "Successfully deleted record ";
+ echo "
Number of rows deleted : ".$sql->rowCount();
+ }*/
+ else{
+ return false;
+ }
+ //}
+ //die();
+
+ /*/$liste_alias_virtuels = array();
+ foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
+ array_push($liste_alias_virtuels,$alias_virtuels);
+ }*/
+ }
+ catch (\Exception $e) {
+ die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage());
}
}
-?>
+?>
\ No newline at end of file
diff --git a/services/bdd/domaines.php b/services/bdd/domaines.php
index 3adb478..12709f4 100644
--- a/services/bdd/domaines.php
+++ b/services/bdd/domaines.php
@@ -4,16 +4,32 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
function listeDomainesPostfix($pdo) {
try {
- $req = $pdo->query('SELECT domaine FROM postfix_domaines');
+ $req = $pdo->query('SELECT domaine FROM postfix_domaines ORDER BY defaut DESC');
$liste_domaines = array();
foreach ($req as $domaine_bdd => $domaine) {
array_push($liste_domaines,$domaine);
}
- return array_reverse($liste_domaines);
+ //return array_reverse($liste_domaines);
+ return $liste_domaines;
}
catch (\Exception $e) {
die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());
}
}
+function afficheDomaineDefautPostfix($pdo) {
+ try {
+ $req = $pdo->query('SELECT domaine FROM postfix_domaines WHERE defaut=1 LIMIT 1');
+ foreach ($req as $domaine_bdd => $domaine_defaut) {
+ //echo $domaine_defaut['domaine'];
+ }
+ //return array_reverse($liste_domaines);
+ return $domaine_defaut['domaine'];
+ }
+ catch (\Exception $e) {
+ die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());
+ }
+}
+
+
?>
diff --git a/services/gestion/alias.php b/services/gestion/alias.php
index 9feea76..4ecd547 100644
--- a/services/gestion/alias.php
+++ b/services/gestion/alias.php
@@ -1,7 +1,7 @@
-
-
Alias de
+
Alias de
-
".$alias_virtuels['destination']."Supprimer
\n";
}
@@ -100,4 +114,4 @@
-
+
\ No newline at end of file
diff --git a/services/utilisateurs/identification.php b/services/utilisateurs/identification.php
index 9531d99..2a1f6a9 100644
--- a/services/utilisateurs/identification.php
+++ b/services/utilisateurs/identification.php
@@ -12,15 +12,15 @@ if (isset($_POST['identifiant']) && isset($_POST['mdp']) && !empty($_POST['ident
if($result) {
session_start();
$_SESSION['id_utilisateur'] = $result[0]['id'];
- $_SESSION['identifiant_utilisateur'] = $result[0]['utilisateur'];
+ $_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
$_SESSION['nom_utilisateur'] = $result[0]['nom_complet'];
$_SESSION['privilege_utilisateur'] = $result[0]['privilege'];
- if (isset($_SESSION['identifiant_utilisateur']) && !empty($_SESSION['identifiant_utilisateur']) && $_SESSION['privilege_utilisateur']=="administrateur") {
+ if (isset($_SESSION['pseudo_utilisateur']) && !empty($_SESSION['pseudo_utilisateur']) && $_SESSION['privilege_utilisateur']=="administrateur") {
header ("location: /pages/gestion/administration.php?message=bienvenue&page=alias");
die();
}
- elseif (isset($_SESSION['identifiant_utilisateur']) && !empty($_SESSION['identifiant_utilisateur']) && $_SESSION['privilege_utilisateur']=="utilisateur") {
+ elseif (isset($_SESSION['pseudo_utilisateur']) && !empty($_SESSION['pseudo_utilisateur']) && $_SESSION['privilege_utilisateur']=="utilisateur") {
header ("location: /pages/gestion/administration.php?message=bienvenue&page=alias");
die();
}
@@ -40,4 +40,4 @@ else {
die();
}
-?>
+?>
\ No newline at end of file