develop dans master - première version stable #9
@@ -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 (
|
||||
|
||||
@@ -13,6 +13,33 @@ require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_menu.php");
|
||||
var_dump($_SESSION);
|
||||
echo "</pre>";*/
|
||||
|
||||
/**
|
||||
* 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 "<p class=\"alias_virtuel_suppr_ko\">Erreur : aucun alias virtuel supprimé.</p>";
|
||||
break;
|
||||
case 2:
|
||||
echo "<p class=\"alias_virtuel_ajout_ko\">Erreur : aucun alias virtuel créé car une donnée est erronée ou manquante.</p>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
elseif (isset($_GET['succes']) && !empty($_GET['succes'])){
|
||||
switch ($_GET['succes']) {
|
||||
case 1:
|
||||
echo "<p class=\"alias_virtuel_suppr_ok\">Succès : alias virtuel supprimé avec succès.</p>";
|
||||
break;
|
||||
case 2:
|
||||
echo "<p class=\"alias_virtuel_modif_ok\">Succès : alias virtuel modifiés avec succès.</p>";
|
||||
break;
|
||||
case 3:
|
||||
echo "<p class=\"alias_virtuel_ajout_ok\">Succès : alias virtuel créé avec succès.</p>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_GET['page']) && !empty($_GET['page'])) {
|
||||
switch ($_GET['page']) {
|
||||
case 'alias':
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
testPrivileges();
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
|
||||
|
||||
echo "<pre>";
|
||||
var_dump($_POST);
|
||||
echo "</pre>";
|
||||
|
||||
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");
|
||||
}*/
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
testPrivileges();
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
|
||||
|
||||
modifEtatAliasVirtuelsPostfix($pdo);
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&succes=2");
|
||||
?>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
testPrivileges();
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
|
||||
|
||||
if(supprAliasVirtuelsPostfix($pdo)) {
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&succes=1");
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=1");
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -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,7 +19,131 @@ 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 "<pre>";
|
||||
var_dump($_POST);
|
||||
echo "</pre>";
|
||||
//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 "<br><br>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 "<br><br>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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
+26
-12
@@ -1,7 +1,7 @@
|
||||
<div>
|
||||
<form action="" method="post">
|
||||
<form action="/services/actions/ajoutAliasVirtuels.php" method="post">
|
||||
<div>
|
||||
<h1>Choix de l'utilisateur</h1>
|
||||
<h1>Choix du domaines</h1>
|
||||
<select name="choix_utilisateur_alias" id="">
|
||||
<?php
|
||||
|
||||
@@ -13,9 +13,12 @@
|
||||
$liste_domaines = listeDomainesPostfix($pdo);
|
||||
$liste_alias_virtuels = listeAliasVirtuelsPostfix($pdo);
|
||||
|
||||
/**
|
||||
* Sélection du domaine pour la création d'un alias virtuel.
|
||||
*/
|
||||
try {
|
||||
foreach ($liste_utilisateurs as $utilisateur_bdd => $utilisateur) {
|
||||
if ($utilisateur['utilisateur']==$_SESSION['identifiant_utilisateur']) {
|
||||
if ($utilisateur['utilisateur']==$_SESSION['pseudo_utilisateur']) {
|
||||
echo "<option value=\"".$utilisateur['utilisateur']."\" selected>".$utilisateur['utilisateur']."</option>\n";
|
||||
}
|
||||
elseif ($_SESSION['privilege_utilisateur']=="administrateur") {
|
||||
@@ -64,27 +67,38 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h1>Ajouter un alias</h1>
|
||||
<h1>Ajouter un alias virtuel</h1>
|
||||
<label for="prefix_alias">Prefix</label>
|
||||
<input type="text" name="prefix_alias">
|
||||
<input type="text" id="nom_alias" name="nom_alias" onkeyup="myFunction()">
|
||||
<label for="nom_alias">alias*</label>
|
||||
<input type="text" id="nom_alias" name="nom_alias" onkeyup="filtreAliasVirtuels()" required>
|
||||
<p id="domaine_alias"><?php echo $liste_domaines[0]["domaine"]; ?></p>
|
||||
<input type="submit" value="Ajouter">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h1>Alias de <?php echo $_SESSION['identifiant_utilisateur']; ?></h1>
|
||||
<h1>Alias de <?php echo $_SESSION['pseudo_utilisateur']; ?></h1>
|
||||
|
||||
<form class="" action="index.html" method="post">
|
||||
<form class="" action="/services/actions/editEtatAliasVirtuels.php" method="post">
|
||||
<ul id="liste_alias_virtuels">
|
||||
<?php
|
||||
// Faire un filtre des alias (depuis la requête SQL) pour n'afficher que ceux de l'adresse de l'utilisateur connecté. Il faudra donc concaténer son identifiant_utilisateur avec le domaine par défaut de la table qu'utilisera Postfix (ça ne fonctionne pas actuellement) pour les utilisateurs locaux via Sqlite
|
||||
// Réexploiter la fonction du filtre pour s'assurer que la supression d'un alias est légitime
|
||||
/**
|
||||
* Ajout d'un alias virtuel.
|
||||
*/
|
||||
try {
|
||||
foreach ($liste_alias_virtuels as $alias_virtuels_bdd => $alias_virtuels) {
|
||||
echo "<li><input type=\"checkbox\"; ";
|
||||
if (isset($alias_virtuels['active']) && !empty($alias_virtuels['active']) && $alias_virtuels['active']==1) echo "checked";
|
||||
/*echo "<pre>";
|
||||
var_dump($alias_virtuels);
|
||||
echo "</pre>";*/
|
||||
|
||||
//echo "<li><input type=\"checkbox\" name=\"".$alias_virtuels['id']."\" ";
|
||||
echo "<li><input type=\"radio\" name=\"".$alias_virtuels['id']."\" value=\"1\"";
|
||||
//if (isset($alias_virtuels['active']) && !empty($alias_virtuels['active']) && $alias_virtuels['active']==1) echo "checked";
|
||||
if (isset($alias_virtuels['active']) && !empty($alias_virtuels['active']) && $alias_virtuels['active']=="1") echo " checked";
|
||||
// Lors de la suppression, mettre un message de confirmation avec un avertissement que les données non-enregistrées seront perdues
|
||||
echo "><p>".$alias_virtuels['destination']."</p><a href=\"unePage.php?supprAliasVirtuel=".$alias_virtuels['id']."\">Supprimer</a></li>\n";
|
||||
echo "><input type=\"radio\" name=\"".$alias_virtuels['id']."\" value=\"0\"";
|
||||
if (isset($alias_virtuels['active']) && $alias_virtuels['active']=="0") echo " checked";
|
||||
echo "><p>".$alias_virtuels['destination']."</p><a href=\"/services/actions/supprAliasVirtuels.php?supprAliasVirtuel=".$alias_virtuels['id']."\">Supprimer</a></li>\n";
|
||||
|
||||
//echo "<form action=\"uneAutrePage.php\" method=\"post\"><input type=\"checkbox\" onchange=submit(); checked></form><p>".$alias_virtuels['destination']."<a href=\"unePage.php?supprAliasVirtuel=".$alias_virtuels['id']."\">Supprimer</a></p>\n";
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user