develop dans master - première version stable #9
@@ -0,0 +1,26 @@
|
||||
/* Style concernant la confirmation de suppression d'un alias virtuel */
|
||||
.confirmation-suppression {
|
||||
display: none;
|
||||
color: #e23026;
|
||||
}
|
||||
.input-checkbox-supprimer-alias:checked ~ .confirmation-suppression {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.input-label-supprimer-alias {
|
||||
color: #ffffff;
|
||||
background: #e23026;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
.visuellement-cache {
|
||||
position: absolute;
|
||||
left: -100vw;
|
||||
}
|
||||
|
||||
/* Sources :
|
||||
* https://stackoverflow.com/questions/6019845/show-hide-div-on-click-with-css
|
||||
* https://dabblet.com/gist/1506530
|
||||
* https://css-tricks.com/the-checkbox-hack/
|
||||
*/
|
||||
@@ -1,3 +1,10 @@
|
||||
/*
|
||||
* Page de fonctions JavaScript afférentes aux filtres de chaînes de carractères.
|
||||
**/
|
||||
|
||||
/*
|
||||
* Fonction permettant de filtrer la liste des alias virtuels d'un utilisateur au file des caractères entrés dans le formulaire de création idoine.
|
||||
**/
|
||||
function filtreAliasVirtuels() {
|
||||
// Déclaration des variables
|
||||
var input, filter, ul, li, a, i, txtValue;
|
||||
@@ -18,3 +25,10 @@ function filtreAliasVirtuels() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Fonction permettant de valider (soumettre le formulaire) le choix de l'utilisateur pour en administrer les possessions.
|
||||
**/
|
||||
function autosubmit() {
|
||||
document.getElementById("form_choix_utilisateur").submit();
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<title>Courtail - Portail des courriels</title>
|
||||
<link href="/fichiers/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/fichiers/css/confirmation.css" rel="stylesheet">
|
||||
<link rel="icon" href="/fichiers/images/favicon.ico" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -1,3 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page par défaut du serveur WEB.
|
||||
* Redirige automatiquement le visiteur sur la page d'accueil.
|
||||
* Cette redirection permet d'ajuster la page de destination sans toucher à la configuration du serveur.
|
||||
*/
|
||||
|
||||
header('Location: /pages/formulaire_accueil.php');
|
||||
?>
|
||||
@@ -1,3 +1,8 @@
|
||||
<!-- Page d'accueil du portail.
|
||||
-- Impose une authentification du visiteur pour continuer.
|
||||
-- Redirige les tentative d'identification pour traitement et test de légitimité.
|
||||
-->
|
||||
|
||||
<div id="contenu" class="contenu">
|
||||
<div id="contenu_auth">
|
||||
</br>
|
||||
@@ -5,7 +10,7 @@
|
||||
<form method="post" action="/services/utilisateurs/identification.php">
|
||||
<tr>
|
||||
<td><label for="identifiant">Votre nom d'utilisateur :</label><br/></td>
|
||||
<td><input type="text" name="identifiant" id="identifiant" required/></td>
|
||||
<td><input type="email" name="identifiant" id="identifiant" required/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="mdp">Votre mot de passe :</label><br/></td>
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
/**
|
||||
* Page centrale de gestion des fonctionnalités du serveur de courriel.
|
||||
* C'est de cette page qu'est appelé l'ensemble des fonctionnalités du portail.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
testPrivileges();
|
||||
@@ -24,6 +26,13 @@ if (isset($_GET['erreur']) && !empty($_GET['erreur'])){
|
||||
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;
|
||||
case 3:
|
||||
echo "<p class=\"alias_virtuel_ajout_ko\">Erreur : L'alias virtuel est déjà existant.</p>";
|
||||
break;
|
||||
case 4:
|
||||
echo "<p class=\"alias_virtuel_ajout_ko\">Erreur : La base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire <i>bdd</i> appartiennent à <i>www-data</i>.</p>";
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
elseif (isset($_GET['succes']) && !empty($_GET['succes'])){
|
||||
@@ -37,9 +46,15 @@ elseif (isset($_GET['succes']) && !empty($_GET['succes'])){
|
||||
case 3:
|
||||
echo "<p class=\"alias_virtuel_ajout_ok\">Succès : alias virtuel créé avec succès.</p>";
|
||||
break;
|
||||
case 4:
|
||||
echo "<p class=\"alias_virtuel_ajout_ok\">Succès : utilisateur changé en ".$_SESSION['pseudo_utilisateur']." avec succès.</p>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Permet d'importer les fonctions de la page demandée par l'utilisateur sur le portail d'administration.
|
||||
*/
|
||||
if (isset($_GET['page']) && !empty($_GET['page'])) {
|
||||
switch ($_GET['page']) {
|
||||
case 'alias':
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page centrale de gestion des paramètres d'un utilisateur et du portail lui-même.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_entete.php");
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* classe
|
||||
*/
|
||||
class foo
|
||||
{
|
||||
/**
|
||||
* attribut
|
||||
*/
|
||||
function do_foo()
|
||||
{
|
||||
echo "Doing foo.";
|
||||
}
|
||||
|
||||
/**
|
||||
* attribut
|
||||
*/
|
||||
function yohan()
|
||||
{
|
||||
echo "Ce mec est trop fort !";
|
||||
}
|
||||
}
|
||||
|
||||
$bar = new foo;
|
||||
$bar->do_foo();
|
||||
$bar->yohan();
|
||||
|
||||
# classe
|
||||
class Voiture
|
||||
{
|
||||
/**
|
||||
* Déclaration des attributs
|
||||
*/
|
||||
# attributs
|
||||
private $niveau_carburant;
|
||||
private $nombre_portes;
|
||||
private $nombre_roues;
|
||||
|
||||
/**
|
||||
* Cette méthode un peu spéciale est le constructeur, elle est exécutée lorsque vous "créez" votre objet. Elle doit initialiser les attributs de la classe.
|
||||
*/
|
||||
# méthode constructeur
|
||||
public function __construct()
|
||||
{
|
||||
$this->niveau_carburant = 50;
|
||||
$this-> = 3;
|
||||
$this->nombre_roues = 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* Première méthode accessible par tous et modifiant le niveau de carburant
|
||||
*/
|
||||
# méthode
|
||||
public function modifier_carburant(int $niveau)
|
||||
{
|
||||
$this->niveau_carburant = $niveau;
|
||||
}
|
||||
|
||||
/**
|
||||
* Seconde méthode accessible à tous et modifiant le nombre de portes
|
||||
*/
|
||||
# méthode
|
||||
public function modifier_nb_portes(int $nb_portes)
|
||||
{
|
||||
$this->nombre_portes = $nb_portes;
|
||||
}
|
||||
}
|
||||
|
||||
$voiture = new Voiture;
|
||||
echo "<pre>";
|
||||
var_dump($voiture);
|
||||
echo "</pre>";
|
||||
|
||||
$voiture->modifier_nb_portes(4);
|
||||
|
||||
echo "<pre>";
|
||||
var_dump($voiture);
|
||||
echo "</pre>";
|
||||
|
||||
echo $voiture['nombre_portes'];
|
||||
|
||||
?>
|
||||
# https://www.vulgarisation-informatique.com/php-poo.php
|
||||
@@ -1,26 +1,24 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de traitement permettant l'ajout d'un alias virtuel.
|
||||
* C'est elle qui effectue les bons tests et appel la fonction adéquate.
|
||||
* Elle est appelée par un formulaire de la page de gestion des alias elle-même appelée par la page d'administration centrale.
|
||||
*/
|
||||
|
||||
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");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=2");
|
||||
die();
|
||||
}
|
||||
/*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,22 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de traitement permettant le changement d'un utilisateur.
|
||||
* Elle est appelée par le formulaire de changement d'un utilisateur (uniquement possible par un administrateur).
|
||||
* Elle effectué ce changement en surchargeant la valeur de session relative à l'identité de l'utilisateur connecté.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
|
||||
if (testPrivileges()=="administrateur" && isset($_POST['choix_utilisateur']) && !empty($_POST['choix_utilisateur'])) {
|
||||
$_SESSION['pseudo_utilisateur'] = $_POST['choix_utilisateur'];
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&succes=4");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/formulaire_accueil.php?erreur=2");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de traitement permettant l'activation et la désactivation d'un ou plusieurs alias virtuels.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
testPrivileges();
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de traitement permettant la suppression d'un alias virtuel.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
testPrivileges();
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
<?php
|
||||
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
|
||||
/**
|
||||
* Page de fonctions permettant la gestion des alias virtuels.
|
||||
*/
|
||||
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/privileges.php");
|
||||
|
||||
/**
|
||||
* Fonction listant les alias virtuels.
|
||||
*/
|
||||
function listeAliasVirtuelsPostfix($pdo) {
|
||||
try {
|
||||
//$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)');
|
||||
$req = $pdo->query('SELECT * FROM postfix_alias_virtuels WHERE destination='."\"$_SESSION[pseudo_utilisateur]\"");
|
||||
$liste_alias_virtuels = array();
|
||||
foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
|
||||
array_push($liste_alias_virtuels,$alias_virtuels);
|
||||
@@ -23,127 +25,126 @@ function listeAliasVirtuelsPostfix($pdo) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fonction d'ajout d'un alias virtuel.
|
||||
*/
|
||||
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]',':@','@');
|
||||
// Insertion de l'alias virtuel entré par l'utilisateur et lié avec son adresse
|
||||
$req='INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES (:alias_virtuel,:courriel,1)';
|
||||
|
||||
//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");
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
|
||||
|
||||
// Si l'utilisateur spécifie un préfixe à son alias, un "." est ajouté pour lé séparé du reste afin d'avoir "préfixe.alias@NdD"
|
||||
if (!empty($_POST['prefix_alias'])) {
|
||||
$separateur_prefix_alias=".";
|
||||
}
|
||||
// Permet de ne pas renvoyer le message "Notice: Undefined variable: separateur_prefix_alias" lors de lexécution du "bindValue" suivant
|
||||
else {
|
||||
$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) {
|
||||
// Récupération du code de retour de la commande SQLite.
|
||||
$code_retour=$sql->errorInfo();
|
||||
|
||||
if ($code_retour[0]=="23000") {
|
||||
// Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "courriel" de la table "postif_alias_virtuels" est violé. L'alias envoyé via le formulaire par l'utilisateur a déjà été renseigné
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=3");
|
||||
die();
|
||||
}
|
||||
elseif ($code_retour[0]=="HY000") {
|
||||
// Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=4");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
|
||||
die ("Erreur de requête d'ajout d'alias virtuel : ".$e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Tester les injections SQL
|
||||
/**
|
||||
* Fonction d'activation/désactivation d'un alias virtuel.
|
||||
* Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des alias d'un utilisateur.
|
||||
* Elle occasionnera peut-être des baisses de performance si un très grand nombre d'alias existe pour un utilisateur donné (le traitement n'intervenant pas spécifiquement pour l'entrée modifiée).
|
||||
*/
|
||||
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='UPDATE postfix_alias_virtuels SET active=:etat_alias_virtuel WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
|
||||
|
||||
//$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->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
|
||||
$sql->execute();
|
||||
/*return true;
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
// Récupération du code de retour de la commande SQLite.
|
||||
$code_retour=$sql->errorInfo();
|
||||
|
||||
if ($code_retour[0]=="HY000") {
|
||||
// Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=4");
|
||||
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) {
|
||||
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
|
||||
die ("Erreur de requête de modification d'état pour les alias virtuels : ".$e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fonction de suppression d'un alias virtuel.
|
||||
*/
|
||||
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)';
|
||||
$req='DELETE FROM postfix_alias_virtuels WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
|
||||
//$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->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']."@");
|
||||
$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
|
||||
$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());
|
||||
// Récupération du code de retour de la commande SQLite.
|
||||
$code_retour=$sql->errorInfo();
|
||||
|
||||
if ($code_retour[0]=="HY000") {
|
||||
// Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=4");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
// En cas d'erreur non gérée, le script s'arrête avec un message d'erreur à destination de l'administrateur du serveur
|
||||
die ("Erreur de requête de suppression d'un alias virtuel : ".$e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
/**
|
||||
* Connexion à la base SQLite3.
|
||||
*/
|
||||
$base = "/etc/postfix/db/postfix.sqlite";
|
||||
|
||||
$base = "/etc/postfix/bdd/postfix.sqlite";
|
||||
|
||||
try{
|
||||
$pdo = new PDO("sqlite:$base");
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de fonctions concernant la gestion des domaines.
|
||||
*/
|
||||
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
|
||||
|
||||
/**
|
||||
* Fonction listant les domaines.
|
||||
*/
|
||||
function listeDomainesPostfix($pdo) {
|
||||
try {
|
||||
$req = $pdo->query('SELECT domaine FROM postfix_domaines ORDER BY defaut DESC');
|
||||
@@ -9,7 +16,6 @@ function listeDomainesPostfix($pdo) {
|
||||
foreach ($req as $domaine_bdd => $domaine) {
|
||||
array_push($liste_domaines,$domaine);
|
||||
}
|
||||
//return array_reverse($liste_domaines);
|
||||
return $liste_domaines;
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
@@ -17,13 +23,14 @@ function listeDomainesPostfix($pdo) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fonction affichant le domaine par défaut.
|
||||
*/
|
||||
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) {
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de fonctions permettant la gestion des utilisateurs.
|
||||
*/
|
||||
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
|
||||
|
||||
/**
|
||||
* Fonction listant les utilisateurs.
|
||||
*/
|
||||
function listeUtilisateursPostfix($pdo) {
|
||||
try {
|
||||
$req = $pdo->query('SELECT utilisateur FROM postfix_utilisateurs');
|
||||
|
||||
+29
-62
@@ -1,10 +1,9 @@
|
||||
<div>
|
||||
<form action="/services/actions/ajoutAliasVirtuels.php" method="post">
|
||||
<div>
|
||||
<h1>Choix du domaines</h1>
|
||||
<select name="choix_utilisateur_alias" id="">
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de gestion importé par la page d'administration centrale permettant la gestion des alias virtuels.
|
||||
*/
|
||||
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/domaines.php");
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/utilisateurs.php");
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
|
||||
@@ -13,27 +12,26 @@
|
||||
$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['pseudo_utilisateur']) {
|
||||
echo "<option value=\"".$utilisateur['utilisateur']."\" selected>".$utilisateur['utilisateur']."</option>\n";
|
||||
}
|
||||
elseif ($_SESSION['privilege_utilisateur']=="administrateur") {
|
||||
// !!! Bien faire attention à contrôler la saisie de l'utilisateur sur cette condition !!!
|
||||
echo "<option value=\"".$utilisateur['utilisateur']."\">".$utilisateur['utilisateur']."</option>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
||||
}
|
||||
|
||||
?>
|
||||
</select>
|
||||
<select name="choix_domaine_alias" onchange='document.getElementById("domaine_alias").innerHTML = this.options[this.selectedIndex].text'>
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur.
|
||||
*/
|
||||
if (testPrivileges()=="administrateur") {
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/formChoixUtilisateur.php");
|
||||
}
|
||||
?>
|
||||
|
||||
<div>
|
||||
<form action="/services/actions/ajoutAliasVirtuels.php" method="post">
|
||||
<h1>Ajouter un alias virtuel</h1>
|
||||
<label for="prefix_alias">Prefix</label>
|
||||
<input type="text" name="prefix_alias">
|
||||
<label for="nom_alias">alias*</label>
|
||||
<input type="text" id="nom_alias" name="nom_alias" onkeyup="filtreAliasVirtuels();" required>
|
||||
<select name="choix_domaine_alias">
|
||||
<?php
|
||||
|
||||
try {
|
||||
@@ -47,34 +45,11 @@
|
||||
|
||||
?>
|
||||
</select>
|
||||
|
||||
|
||||
<?php
|
||||
// $domainesPostfix = new domainesPostfix;
|
||||
// $domainesPostfix->lister_domaines_postfix($pdo);
|
||||
//echo $liste_domaine[1]['domaine'];
|
||||
/*echo "<pre>";
|
||||
echo "<h2>Liste des utilisateurs</h2>";
|
||||
var_dump($liste_utilisateurs);
|
||||
echo "<h2>Liste des domaines</h2>";
|
||||
var_dump($liste_domaines);
|
||||
// var_dump($domainesPostfix->lister_domaines_postfix($pdo));
|
||||
echo "</pre>";
|
||||
echo $liste_domaines[1]['domaine'];*/
|
||||
|
||||
//echo $voiture['nombre_portes'];
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h1>Ajouter un alias virtuel</h1>
|
||||
<label for="prefix_alias">Prefix</label>
|
||||
<input type="text" name="prefix_alias">
|
||||
<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>
|
||||
<!--<select name="choix_domaine_alias" onchange='document.getElementById("domaine_alias").innerHTML = this.options[this.selectedIndex].text'>
|
||||
<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>
|
||||
</select>
|
||||
<p id="domaine_alias"><?php //echo $liste_domaines[0]["domaine"]; ?></p>-->
|
||||
<input type="submit" value="Ajouter">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h1>Alias de <?php echo $_SESSION['pseudo_utilisateur']; ?></h1>
|
||||
@@ -82,25 +57,17 @@
|
||||
<form class="" action="/services/actions/editEtatAliasVirtuels.php" method="post">
|
||||
<ul id="liste_alias_virtuels">
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Ajout d'un alias virtuel.
|
||||
*/
|
||||
try {
|
||||
foreach ($liste_alias_virtuels as $alias_virtuels_bdd => $alias_virtuels) {
|
||||
/*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 "><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";
|
||||
echo "><p>".$alias_virtuels['courriel']."</p><label class=\"input-label-supprimer-alias\" for=\"supprimer-alias-".$alias_virtuels['id']."\">Supprimer</label><input type=\"checkbox\" class=\"input-checkbox-supprimer-alias visuellement-cache\" id=\"supprimer-alias-".$alias_virtuels['id']."\"><a class=\"confirmation-suppression\" href=\"/services/actions/supprAliasVirtuels.php?supprAliasVirtuel=".$alias_virtuels['id']."\">Confirmer la suppression</a></li>\n";
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de gestion importé par la page d'administration centrale permettant la gestion des domaines.
|
||||
*/
|
||||
|
||||
/*
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de gestion importé par la page d'administration centrale permettant la gestion des listes noires.
|
||||
*/
|
||||
|
||||
/*
|
||||
session_start();
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de fonctions permettant d'identifier la légitimité d'un utilisateur.
|
||||
*/
|
||||
|
||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
|
||||
|
||||
/*
|
||||
* Fonction d'authentification des utilisateurs.
|
||||
* Elle récupère le couple identifiant/mot de passe renseigné par le visiteur sur la page d'accueil.
|
||||
* Elle compare ces information avec la ligne correspondante dans la base de donnée (en prenant l'adresse de courriel comme sélecteur).
|
||||
* Elle hache le mot de passe du formulaire et le compare à celui de l'entrée correspondante en base.
|
||||
*/
|
||||
function validationIdentifiants($pdo,$identifiant,$mdp){
|
||||
try {
|
||||
$req = 'SELECT * FROM postfix_utilisateurs WHERE utilisateur=:identifiant AND mot_de_passe=:mdp';
|
||||
$req = 'SELECT * FROM postfix_utilisateurs WHERE utilisateur=:identifiant';
|
||||
|
||||
$prep = $pdo->prepare($req);
|
||||
$prep->bindValue(':identifiant', $identifiant);
|
||||
$prep->bindValue(':mdp', $mdp);
|
||||
$prep->execute();
|
||||
|
||||
$result = $prep ->fetchAll(PDO::FETCH_ASSOC);
|
||||
@@ -22,6 +29,22 @@ function validationIdentifiants($pdo,$identifiant,$mdp){
|
||||
}
|
||||
|
||||
if($comptage == 1){
|
||||
|
||||
/**
|
||||
* Les paramètres de la fonction crypt de $mot_de_passe_form sont composés du mot de passe issue du formulaire accueil ainsi que du sel.
|
||||
* Les signes dollars sont des séparateurs. $mot_de_passe_base[1]=6=SHA512. $mot_de_passe_base[2]=au sel du mot de passe contenu dans la base.
|
||||
* Les paramètres de sel sont issus du mot de passe haché contenu dans la base.
|
||||
* L'opération de vérification s'adapte ainsi automatiquement aux algoritmes utilisés par Dovecot lors du hachage du mot de passe utilisateur.
|
||||
*/
|
||||
$mot_de_passe_base=explode('$', $result['0']['mot_de_passe']);
|
||||
$mot_de_passe_form=crypt(trim("$mdp"), "$".$mot_de_passe_base[1]."$".$mot_de_passe_base[2]."$");
|
||||
|
||||
if ("$".$mot_de_passe_base[1]."$".$mot_de_passe_base[2]."$".$mot_de_passe_base[3]!=$mot_de_passe_form) {
|
||||
// Si le mot de passe renseigné n'est le bon, le visiteur est redirigé vers la page d'accueil avec un message explicatif
|
||||
header('Location: /services/utilisateurs/echec_auth.php');
|
||||
die();
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Déconnexion d'un utilisateur authentifié.
|
||||
* Page permettant la déconnexion d'un utilisateur authentifié.
|
||||
*/
|
||||
|
||||
// Récupération de la session
|
||||
session_start ();
|
||||
// Destruction des variables de la session
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de redirection vers la page d'accueil.
|
||||
* Elle est appelée par la page d'identification lorsqu'un visiteur n'est pas parvenu à s'identifier.
|
||||
* Elle ajoute à cette redirection un temps d'attente pour limiter la fréquence des tentatives ainsi qu'une variable dans l'URL permettant l'affichage d'un message d'explication sur la redirection.
|
||||
*/
|
||||
|
||||
header ("Refresh: 5;URL=/pages/formulaire_accueil.php?erreur=1");
|
||||
?>
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<div>
|
||||
<form id="form_choix_utilisateur" action="/services/actions/changeUtilisateur.php" method="post">
|
||||
<div>
|
||||
<h1>Choix de l'adresse</h1>
|
||||
<select name="choix_utilisateur" onchange="autosubmit(this);">
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Remplis un menu déroulant permettant le choix de l'utilisateur par l'administrateur.
|
||||
* Ce choix permettra de modifier les alias virtuels y étant rattachés.
|
||||
* La valeur par défaut du menu est positionnée sur le compte administrateur actuellement connecté.
|
||||
*/
|
||||
try {
|
||||
foreach ($liste_utilisateurs as $utilisateur_bdd => $utilisateur) {
|
||||
if ($utilisateur['utilisateur']==$_SESSION['pseudo_utilisateur']) {
|
||||
echo "<option value=\"".$utilisateur['utilisateur']."\" selected>".$utilisateur['utilisateur']."</option>\n";
|
||||
}
|
||||
elseif ($_SESSION['privilege_utilisateur']=="administrateur") {
|
||||
echo "<option value=\"".$utilisateur['utilisateur']."\">".$utilisateur['utilisateur']."</option>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
||||
}
|
||||
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1,5 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de traitement de l'identification d'un visiteur.
|
||||
* Elle vérifie la présence des valeurs fournies par le formulaire de la page d'accueil et les passes à la fonction de validation.
|
||||
* Si le visiteur a été authentifié, il devient un utilisateur et est redirigé vers la page d'administration centrale après ouverture de session (comportant ses informations et privilèges).
|
||||
* Si le visiteur n'a pas été authentifié, il est redirigé vers la page d'accueil.
|
||||
*/
|
||||
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/utilisateurs/authentification.php");
|
||||
|
||||
if (isset($_POST['identifiant']) && isset($_POST['mdp']) && !empty($_POST['identifiant']) && !empty($_POST['mdp'])) {
|
||||
@@ -7,7 +14,7 @@ if (isset($_POST['identifiant']) && isset($_POST['mdp']) && !empty($_POST['ident
|
||||
/**
|
||||
* Vérification des informations entrées par l'utilisateur.
|
||||
*/
|
||||
$result = validationIdentifiants($pdo,$_POST['identifiant'],$_POST['mdp']);
|
||||
$result = validationIdentifiants($pdo,$_POST['identifiant'],trim($_POST['mdp']));
|
||||
|
||||
if($result) {
|
||||
session_start();
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Page de fonctions permettant la vérification des permission d'un utilisateur ou d'un visiteur.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Fonction testant le niveau de privilège d'un utilisateur authentifié ou non.
|
||||
* Elle vérifie le privilège de l'utilisateur connecté et retourne la valeur adéquate.
|
||||
* Si un visiteur ou un utilisateur ne remplis pas la bonne condition, il est redirigé à la page d'accueil avec un message expllicatif.
|
||||
* Cette fonction devrait être appelée dans toute page de traitement.
|
||||
*/
|
||||
function testPrivileges(){
|
||||
if (isset($_SESSION['id_utilisateur']) && !empty($_SESSION['id_utilisateur']) && $_SESSION['privilege_utilisateur']=="administrateur") {
|
||||
|
||||
return "administrateur";
|
||||
}
|
||||
elseif (isset($_SESSION['id_utilisateur']) && !empty($_SESSION['id_utilisateur']) && $_SESSION['privilege_utilisateur']=="utilisateur") {
|
||||
|
||||
return "utilisateur";
|
||||
}
|
||||
else {
|
||||
header("Location: /pages/formulaire_accueil.php?erreur=2");
|
||||
|
||||
Reference in New Issue
Block a user