Version 1.1.0 #10
@@ -29,6 +29,26 @@
|
|||||||
left: -100vw;
|
left: -100vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.detail-utilisateur {
|
||||||
|
display: none;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #dc3545;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-utilisateur:hover {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #bb2d3b;
|
||||||
|
border-color: #b02a37;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-checkbox-detail-utilisateur:checked ~ .detail-utilisateur {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
/* Sources :
|
/* Sources :
|
||||||
* https://stackoverflow.com/questions/6019845/show-hide-div-on-click-with-css
|
* https://stackoverflow.com/questions/6019845/show-hide-div-on-click-with-css
|
||||||
* https://dabblet.com/gist/1506530
|
* https://dabblet.com/gist/1506530
|
||||||
|
|||||||
@@ -22,14 +22,15 @@ if (isset($_GET['page']) && !empty($_GET['page'])) {
|
|||||||
<a class="nav-link <?php if ($_GET['page'] == 'domaines') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=domaines">Domaines</a>
|
<a class="nav-link <?php if ($_GET['page'] == 'domaines') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=domaines">Domaines</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle <?php if ($_GET['sousPage'] == 'destinataires' || $_GET['sousPage'] == 'expediteurs') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
<a class="nav-link dropdown-toggle <?php if ($_GET['sousPage'] == 'destinataires' || $_GET['sousPage'] == 'expediteurs') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Listes noires</a>
|
||||||
Listes noires
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
<li><a class="dropdown-item" href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires">Destinataires</a></li>
|
<li><a class="dropdown-item" href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires">Destinataires</a></li>
|
||||||
<li><a class="dropdown-item" href="/pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs">Expéditeurs</a></li>
|
<li><a class="dropdown-item" href="/pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs">Expéditeurs</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?php if ($_GET['page'] == 'utilisateurs' || $_GET['page'] == 'utilisateurs') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=utilisateurs">Utilisateurs</a>
|
||||||
|
</li>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script src="/fichiers/js/bootstrap.bundle.min.js"></script>
|
<script src="/fichiers/js/bootstrap.bundle.min.js"></script>
|
||||||
<script src="/fichiers/js/formulaire.js"></script>
|
<script src="/fichiers/js/formulaire.js"></script>
|
||||||
|
<script src="/fichiers/js/filtre.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -48,6 +48,9 @@ if (isset($_GET['page']) && !empty($_GET['page'])) {
|
|||||||
case 'listes_noires':
|
case 'listes_noires':
|
||||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/listes_noires.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/listes_noires.php");
|
||||||
break;
|
break;
|
||||||
|
case 'utilisateurs':
|
||||||
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/utilisateurs.php");
|
||||||
|
break;
|
||||||
case 'parametres':
|
case 'parametres':
|
||||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/parametres.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/gestion/parametres.php");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction listant les alias virtuels d'un utilisateur.
|
* Fonction listant les alias virtuels d'un utilisateur.
|
||||||
@@ -69,7 +68,7 @@ function ajoutAliasVirtuelsPostfix($pdo,$nom_alias_virtuel,$choix_domaine_alias_
|
|||||||
$code_retour=$sql->errorInfo();
|
$code_retour=$sql->errorInfo();
|
||||||
|
|
||||||
if ($code_retour[0]=="23000") {
|
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ée. L'alias envoyé via le formulaire par l'utilisateur a déjà été renseigné dans la base
|
// Code de retour envoyé par le pilote PDO SQLite signifiant que la contrainte "UNIQUE" du champ "courriel" de la table "postfix_alias_virtuels" est violée. L'alias envoyé via le formulaire par l'utilisateur a déjà été renseigné dans la base
|
||||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=3");
|
header ("Location: /pages/gestion/administration.php?page=alias&erreur=3");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
@@ -154,4 +153,40 @@ function supprAliasVirtuelsPostfix($pdo,$suppr_alias_virtuel) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction de suppression de tous les alias virtuels d'un utilisateur (à la suppression de celui-ci).
|
||||||
|
*/
|
||||||
|
function supprTousAliasVirtuelsUtilisateurBdd($pdo,$id_utilisateur) {
|
||||||
|
try {
|
||||||
|
$req='DELETE FROM postfix_alias_virtuels WHERE destination IN (SELECT utilisateur FROM postfix_utilisateurs WHERE id=:id_utilisateur);';
|
||||||
|
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':id_utilisateur',$id_utilisateur);
|
||||||
|
$sql->execute();
|
||||||
|
|
||||||
|
$code_retour=$sql->errorInfo();
|
||||||
|
if ($code_retour[0]=="00000") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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 {
|
||||||
|
// 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 des alias virtuels de l'utilisateur : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
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.
|
* Fonction générant un fichier CSV avec le contenu des alias virtuels d'un utilisateur.
|
||||||
|
|||||||
@@ -7,11 +7,12 @@
|
|||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction listant les utilisateurs.
|
* Fonction listant tous les utilisateurs.
|
||||||
*/
|
*/
|
||||||
function listeUtilisateursPostfix($pdo) {
|
function listeUtilisateursPostfix($pdo) {
|
||||||
try {
|
try {
|
||||||
$req = 'SELECT utilisateur FROM postfix_utilisateurs';
|
$req = 'SELECT * FROM postfix_utilisateurs';
|
||||||
|
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
@@ -23,6 +24,71 @@ function listeUtilisateursPostfix($pdo) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction listant un utilisateur en particulier.
|
||||||
|
*/
|
||||||
|
function listeUtilisateurBdd($pdo,$id_utilisateur) {
|
||||||
|
try {
|
||||||
|
$req = 'SELECT * FROM postfix_utilisateurs WHERE id=:id_utilisateur';
|
||||||
|
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':id_utilisateur',$id_utilisateur);
|
||||||
|
$sql->execute();
|
||||||
|
|
||||||
|
$infos_utilisateur = $sql->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
return $infos_utilisateur;
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de selection des utilisateurs : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction d'ajout d'un utilisateur.
|
||||||
|
*/
|
||||||
|
function ajoutUtilisateurBdd($pdo,$prefixe_utilisateur,$nom_utilisateur,$choix_domaine_utilisateur,$mot_de_passe_utilisateur,$nom_complet_utilisateur,$choix_privilege_utilisateur) {
|
||||||
|
try {
|
||||||
|
// Insertion du nouvelutilisateur entré par l'administrateur. le mot de passe "motdepasse" est mis par défaut et changé juste après par la fonction idoine afin de ne pas dupliquer de code
|
||||||
|
$req='INSERT INTO postfix_utilisateurs (utilisateur,mot_de_passe,nom_complet,rep_perso,uid,gid,privilege,prefixe,active) VALUES (:nom_utilisateur,"{SHA512-CRYPT}$6$SAeCKr.vyiMjMMVa$okHL4IbTkVJO2an.mdFo8EizAxC0pfP6EV4xhO78C.OvMsirM9BD5TYhNaGPcfReQZ6ilc9feaETTvN6c.h6Z0",:nom_complet_utilisateur,:rep_perso,3000,3000,:choix_privilege_utilisateur,:prefixe_utilisateur,1);';
|
||||||
|
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':nom_utilisateur',substr(htmlspecialchars($nom_utilisateur."@".$choix_domaine_utilisateur),0,100));
|
||||||
|
$sql->bindValue(':nom_complet_utilisateur',substr(htmlspecialchars($nom_complet_utilisateur),0,100));
|
||||||
|
$sql->bindValue(':rep_perso',substr(htmlspecialchars($choix_domaine_utilisateur."/".$nom_utilisateur."/"),0,100));
|
||||||
|
$sql->bindValue(':choix_privilege_utilisateur',substr(htmlspecialchars($choix_privilege_utilisateur),0,100));
|
||||||
|
$sql->bindValue(':prefixe_utilisateur',substr(htmlspecialchars($prefixe_utilisateur),0,100));
|
||||||
|
$sql->execute();
|
||||||
|
|
||||||
|
if ($sql->rowCount() == 1){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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 "utilisateur" de la table "postfix_utilisateurs" est violée. Le nom d'utilisateur envoyé via le formulaire par l'administrateur a déjà été renseigné dans la base
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=25");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
elseif ($code_retour[0]=="HY000") {
|
||||||
|
// Code de retour envoyé par le pilote PDO SQLite lorsque la base de données n'est accessible qu'en lecture seule à www-data
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction vérifiant le mot de passe actuel d'un utilisateur.
|
* Fonction vérifiant le mot de passe actuel d'un utilisateur.
|
||||||
*/
|
*/
|
||||||
@@ -161,5 +227,73 @@ function verifUtilisateursExiste($pdo,$utilisateur) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction de suppression d'un utilisateur.
|
||||||
|
*/
|
||||||
|
function supprUtilisateursBdd($pdo,$suppr_utilisateur) {
|
||||||
|
try {
|
||||||
|
$req='DELETE FROM postfix_utilisateurs WHERE id=:id_utilisateur AND utilisateur!=:pseudo_connexion_utilisateur';
|
||||||
|
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':id_utilisateur',$suppr_utilisateur);
|
||||||
|
$sql->bindValue(':pseudo_connexion_utilisateur',$_SESSION['pseudo_connexion_utilisateur']);
|
||||||
|
$sql->execute();
|
||||||
|
|
||||||
|
if($sql->rowCount() == 1){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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=utilisateurs&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 utilisateur : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction de modification des informations des utilisateurs.
|
||||||
|
* Suite à une soumission du formulaire dédié, cette fonction va traiter l'ensemble des données modifiables des utilisateurs.
|
||||||
|
* Seul les utilisateurs recevant au moins une modification sont traités.
|
||||||
|
*/
|
||||||
|
function modifUtilisateursBdd($pdo,$nouvelles_données_utilisateur) {
|
||||||
|
try {
|
||||||
|
$req='UPDATE postfix_utilisateurs SET active=:etat_utilisateur,nom_complet=:nom_complet_utilisateur,privilege=:choix_privilege_utilisateur,prefixe=:prefixe_utilisateur WHERE id=:id_utilisateur AND utilisateur=:pseudo_utilisateur';
|
||||||
|
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':etat_utilisateur',$nouvelles_données_utilisateur['etat_utilisateur']);
|
||||||
|
$sql->bindValue(':nom_complet_utilisateur',$nouvelles_données_utilisateur['nom_complet_utilisateur']);
|
||||||
|
$sql->bindValue(':choix_privilege_utilisateur',$nouvelles_données_utilisateur['choix_privilege_utilisateur']);
|
||||||
|
$sql->bindValue(':prefixe_utilisateur',$nouvelles_données_utilisateur['prefixe_utilisateur']);
|
||||||
|
$sql->bindValue(':id_utilisateur',$nouvelles_données_utilisateur['id_utilisateur']);
|
||||||
|
$sql->bindValue(':pseudo_utilisateur',$nouvelles_données_utilisateur['nom_utilisateur']);
|
||||||
|
$sql->execute();
|
||||||
|
}
|
||||||
|
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=utilisateurs&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 modification des données pour l'utilisateur $nouvelles_données_utilisateur[nom_utilisateur] : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ function retourneMessage($type_message,$num_message) {
|
|||||||
6 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine modifiés avec succès.</div>",
|
6 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine modifiés avec succès.</div>",
|
||||||
7 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine supprimé avec succès.</div>",
|
7 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine supprimé avec succès.</div>",
|
||||||
8 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine défini par défaut avec succès.</div>",
|
8 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine défini par défaut avec succès.</div>",
|
||||||
9 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire destiataires a été créée avec succès.</div>",
|
9 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire destinataires a été créée avec succès.</div>",
|
||||||
10 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire destiataires a été modifié avec succès.</div>",
|
10 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire destinataires a été modifié avec succès.</div>",
|
||||||
11 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire destinataires a été supprimée avec succès.</div>",
|
11 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire destinataires a été supprimée avec succès.</div>",
|
||||||
12 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été créée avec succès.</div>",
|
12 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été créée avec succès.</div>",
|
||||||
13 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire expéditeurs a été modifié avec succès.</div>",
|
13 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire expéditeurs a été modifié avec succès.</div>",
|
||||||
@@ -35,7 +35,10 @@ function retourneMessage($type_message,$num_message) {
|
|||||||
16 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le mot de passe de $pseudo_utilisateur a bien été changé.</div>",
|
16 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le mot de passe de $pseudo_utilisateur a bien été changé.</div>",
|
||||||
17 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le préfixe de $pseudo_utilisateur a bien été changé.</div>",
|
17 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Le préfixe de $pseudo_utilisateur a bien été changé.</div>",
|
||||||
18 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vos données ont bien étés importés. Les doublons ainsi que les données erronées ont étés ignorés.</div>",
|
18 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vos données ont bien étés importés. Les doublons ainsi que les données erronées ont étés ignorés.</div>",
|
||||||
19 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vos données ont bien étés importés. Veuillez vous ré-identifier.</div>"),
|
19 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vos données ont bien étés importés. Veuillez vous ré-identifier.</div>",
|
||||||
|
20 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'utilisateur a bien été créé.</div>",
|
||||||
|
21 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'utilisateur a bien été supprimé.</div>",
|
||||||
|
22 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Les données utilisateur ont bien étés mises à jour.</div>"),
|
||||||
"erreurs" => array(
|
"erreurs" => array(
|
||||||
1 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel supprimé.</div>",
|
1 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel supprimé.</div>",
|
||||||
2 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel créé car une donnée est erronée ou manquante.</div>",
|
2 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel créé car une donnée est erronée ou manquante.</div>",
|
||||||
@@ -57,10 +60,16 @@ function retourneMessage($type_message,$num_message) {
|
|||||||
18 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Vous n'avez pas les privilèges nécessaires.</div>",
|
18 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Vous n'avez pas les privilèges nécessaires.</div>",
|
||||||
19 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Erreur non gérée.</div>",
|
19 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Erreur non gérée.</div>",
|
||||||
20 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'ancien mot de passe renseigné est erroné.</div>",
|
20 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'ancien mot de passe renseigné est erroné.</div>",
|
||||||
21 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Le mot de passe de confimation n'est pas identique au nouveau mot de passe.</div>",
|
21 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Le mot de passe de confirmation n'est pas identique au nouveau mot de passe.</div>",
|
||||||
22 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Une erreur s'est produite lors de l'envoi du fichier. Il doit être de type CSV de moins de 2 Mo et avoir été généré par Courtail.</div>",
|
22 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Une erreur s'est produite lors de l'envoi du fichier. Il doit être de type CSV de moins de 2 Mo et avoir été généré par Courtail.</div>",
|
||||||
23 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Votre fichier d'import CSV est plus grand que 2 Mo.</div>",
|
23 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Votre fichier d'import CSV est plus grand que 2 Mo.</div>",
|
||||||
24 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Auncun type de donnée n'a été spécifié pour l'importation.</div>"),
|
24 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun type de donnée n'a été spécifié pour l'importation.</div>",
|
||||||
|
25 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'utilisateur est déjà existant.</div>",
|
||||||
|
26 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Le domaine indiqué n'existe pas.</div>",
|
||||||
|
27 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Le privilège indiqué n'existe pas.</div>",
|
||||||
|
28 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun utilisateur supprimé.</div>",
|
||||||
|
29 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Erreur lors de la suppression des alias virtuels de l'utilisateur. Utilisateur non supprimé.</div>",
|
||||||
|
30 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Votre accès a été révoqué par un administrateur suite à la désactivation de votre compte.</div>"),
|
||||||
"messages" => array(
|
"messages" => array(
|
||||||
"bienvenue" => "<div class=\"alert alert-primary\" role=\"alert\"><img src=\"/fichiers/svg/info.svg\"/> Bienvenue ".$nom_utilisateur.". Vous êtes authentifié en tant qu'".$privilege_utilisateur.".</div>")
|
"bienvenue" => "<div class=\"alert alert-primary\" role=\"alert\"><img src=\"/fichiers/svg/info.svg\"/> Bienvenue ".$nom_utilisateur.". Vous êtes authentifié en tant qu'".$privilege_utilisateur.".</div>")
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -63,7 +63,12 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
|
|||||||
function initValeursSession($result) {
|
function initValeursSession($result) {
|
||||||
$_SESSION['id_utilisateur'] = $result[0]['id'];
|
$_SESSION['id_utilisateur'] = $result[0]['id'];
|
||||||
$_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
|
$_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
|
||||||
|
if (!empty($result[0]['nom_complet'])) {
|
||||||
$_SESSION['nom_utilisateur'] = $result[0]['nom_complet'];
|
$_SESSION['nom_utilisateur'] = $result[0]['nom_complet'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$_SESSION['nom_utilisateur'] = $result[0]['utilisateur'];
|
||||||
|
}
|
||||||
$_SESSION['privilege_utilisateur'] = $result[0]['privilege'];
|
$_SESSION['privilege_utilisateur'] = $result[0]['privilege'];
|
||||||
$_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur'];
|
$_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,17 +4,35 @@
|
|||||||
* Page de fonctions permettant la vérification des permission d'un utilisateur ou d'un visiteur.
|
* Page de fonctions permettant la vérification des permission d'un utilisateur ou d'un visiteur.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Importation des fonctions utilisateurs afin de pouvoir en lister les données plus bas (fonction listeUtilisateurBdd).
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
$infos_utilisateur = listeUtilisateurBdd($pdo,$_SESSION['id_utilisateur']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction testant le niveau de privilège d'un utilisateur authentifié ou non.
|
* 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.
|
* 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.
|
* 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.
|
* Cette fonction devrait être appelée dans toute page de traitement.
|
||||||
*/
|
*/
|
||||||
function testPrivileges(){
|
function testPrivileges() {
|
||||||
|
// Utilisation d'une fonction listant les données d'un utilisateur afin de savoir s'il est activé ou non. Ceci permet de déconnecter un utilisateur automatiquement à la prochaine page visité si celui-ci a été désactivé par un administrateur.
|
||||||
|
global $pdo;
|
||||||
|
$infos_utilisateur = listeUtilisateurBdd($pdo,$_SESSION['id_utilisateur']);
|
||||||
|
|
||||||
if (isset($_SESSION['id_utilisateur']) && !empty($_SESSION['id_utilisateur']) && $_SESSION['privilege_utilisateur']=="administrateur") {
|
if (isset($_SESSION['id_utilisateur']) && !empty($_SESSION['id_utilisateur']) && $_SESSION['privilege_utilisateur']=="administrateur") {
|
||||||
|
if (!isset($infos_utilisateur[0]["active"]) || $infos_utilisateur[0]["active"]!=="1") {
|
||||||
|
header("Location: /services/traitements/utilisateurs/deconnexion.php?erreur=30");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
return "administrateur";
|
return "administrateur";
|
||||||
}
|
}
|
||||||
elseif (isset($_SESSION['id_utilisateur']) && !empty($_SESSION['id_utilisateur']) && $_SESSION['privilege_utilisateur']=="utilisateur") {
|
elseif (isset($_SESSION['id_utilisateur']) && !empty($_SESSION['id_utilisateur']) && $_SESSION['privilege_utilisateur']=="utilisateur") {
|
||||||
|
if (!isset($infos_utilisateur[0]["active"]) || $infos_utilisateur[0]["active"]!=="1") {
|
||||||
|
header("Location: /services/traitements/utilisateurs/deconnexion.php?erreur=30");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
return "utilisateur";
|
return "utilisateur";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ _HEREDOC_;
|
|||||||
_HEREDOC_;
|
_HEREDOC_;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="col-12<?php if ($_SESSION['privilege_utilisateur']==="administrateur") {echo' col-md-6';}?>">
|
<div class="col-12<?php if ($_SESSION['privilege_utilisateur']==="administrateur") {echo' col-md-6';}?>">
|
||||||
<div class="card mt-4 max-hauteur-pastille">
|
<div class="card mt-4 max-hauteur-pastille">
|
||||||
@@ -85,10 +85,6 @@ _HEREDOC_;
|
|||||||
|
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
<!--<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>-->
|
|
||||||
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -112,7 +108,8 @@ _HEREDOC_;
|
|||||||
if (isset($alias_virtuels_valeurs['active']) && $alias_virtuels_valeurs['active']=="1") {
|
if (isset($alias_virtuels_valeurs['active']) && $alias_virtuels_valeurs['active']=="1") {
|
||||||
$etat_interrupteur_allumer="checked";
|
$etat_interrupteur_allumer="checked";
|
||||||
$etat_interrupteur_eteint="";
|
$etat_interrupteur_eteint="";
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$etat_interrupteur_eteint="checked";
|
$etat_interrupteur_eteint="checked";
|
||||||
$etat_interrupteur_allumer="";
|
$etat_interrupteur_allumer="";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,6 @@
|
|||||||
* Page de gestion importé par la page d'administration centrale permettant la gestion des domaines.
|
* Page de gestion importé par la page d'administration centrale permettant la gestion des domaines.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
|
||||||
|
|
||||||
if (testPrivileges()!=="administrateur") {
|
if (testPrivileges()!=="administrateur") {
|
||||||
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
die();
|
die();
|
||||||
@@ -15,7 +13,6 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
|||||||
$liste_domaines = listeDomainesPostfix($pdo);
|
$liste_domaines = listeDomainesPostfix($pdo);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!-- Affichage et changement du domaine par défaut -->
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-12 col-md-6">
|
||||||
<div class="card mt-4 max-hauteur-pastille">
|
<div class="card mt-4 max-hauteur-pastille">
|
||||||
@@ -23,6 +20,7 @@ $liste_domaines = listeDomainesPostfix($pdo);
|
|||||||
<h5 class="card-title">Domaine par défaut</h5>
|
<h5 class="card-title">Domaine par défaut</h5>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// Affichage et changement du domaine par défaut
|
||||||
$domaine_defaut = retourneDomaineDefautPostfix($pdo);
|
$domaine_defaut = retourneDomaineDefautPostfix($pdo);
|
||||||
if (empty($domaine_defaut)) {
|
if (empty($domaine_defaut)) {
|
||||||
echo <<<_HEREDOC_
|
echo <<<_HEREDOC_
|
||||||
|
|||||||
@@ -0,0 +1,147 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page de gestion importé par la page d'administration centrale permettant la gestion des utilisateurs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (testPrivileges()!=="administrateur") {
|
||||||
|
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
|
||||||
|
$liste_utilisateurs = listeUtilisateursPostfix($pdo);
|
||||||
|
$liste_domaines = listeDomainesPostfix($pdo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur.
|
||||||
|
*/
|
||||||
|
if (testPrivileges()==="administrateur") {
|
||||||
|
echo <<<_HEREDOC_
|
||||||
|
|
||||||
|
<div class="card mt-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Ajout d'un utilisateur</h5>
|
||||||
|
<form id="form_choix_utilisateur" action="/services/traitements/utilisateurs/ajoutUtilisateurs.php" method="post">
|
||||||
|
<div class="input-group">
|
||||||
|
<input class="form-control" type="text" name="prefixe_utilisateur" placeholder="prefixe" title="Texte s'ajoutant devant les alias de l'utilisateurs afin de les discriminer de ceux des autres">
|
||||||
|
<input type="text" class="form-control" id="nom_pour_filtre" name="nom_utilisateur" placeholder="nom utilisateur *" onkeyup="filtreValeurs();" required>
|
||||||
|
<span class="input-group-text">@</span>
|
||||||
|
<select class="form-select" name="choix_domaine_utilisateur">
|
||||||
|
_HEREDOC_;
|
||||||
|
try {
|
||||||
|
foreach ($liste_domaines as $domaine_bdd => $domaine) {
|
||||||
|
echo "<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de selection du domaine pour \"$base\" : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
echo <<<_HEREDOC_
|
||||||
|
</select>
|
||||||
|
<input type="password" class="form-control" name="mot_de_passe_utilisateur" placeholder="mot de passe *" required>
|
||||||
|
<input class="form-control" type="text" name="nom_complet_utilisateur" placeholder="nom complet">
|
||||||
|
<select class="form-select" name="choix_privilege_utilisateur" required>
|
||||||
|
<optgroup label="privilège">
|
||||||
|
<option value="utilisateur" title="Accès limité aux fonctionnalités">utilisateur</option>
|
||||||
|
<option value="administrateur" title="Accès complet et gestions des autres utilisateurs">administrateur</option>
|
||||||
|
</optgroup>
|
||||||
|
</select>
|
||||||
|
<button class="btn btn-primary bouton-ajout" type="submit">Appliquer</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
_HEREDOC_;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="card mt-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Utilisateurs du serveur</h5>
|
||||||
|
<form class="" action="/services/traitements/utilisateurs/editUtilisateurs.php" method="post">
|
||||||
|
<div class="row" id="liste_pour_filtre">
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liste des utilisateurs.
|
||||||
|
*/
|
||||||
|
try {
|
||||||
|
$numero_entree=0;
|
||||||
|
foreach ($liste_utilisateurs as $utilisateurs_cles => $utilisateurs_valeurs) {
|
||||||
|
if (isset($utilisateurs_valeurs['active']) && $utilisateurs_valeurs['active']=="1") {
|
||||||
|
$etat_interrupteur_allumer="checked";
|
||||||
|
$etat_interrupteur_eteint="";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$etat_interrupteur_eteint="checked";
|
||||||
|
$etat_interrupteur_allumer="";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo <<<_HEREDOC_
|
||||||
|
<input type="hidden" name="utilisateur[{$numero_entree}][id_utilisateur]" value="{$utilisateurs_valeurs['id']}">
|
||||||
|
<div class="col-md-6 col-xl-4">
|
||||||
|
<div class="card contour-pastille">
|
||||||
|
<div class="d-flex interieur-pastille">
|
||||||
|
<div class="champ-interrupteur">
|
||||||
|
<input type="radio" name="utilisateur[{$numero_entree}][etat_utilisateur]" id="allumer{$utilisateurs_valeurs['id']}" value="1" {$etat_interrupteur_allumer}>
|
||||||
|
<label for="allumer{$utilisateurs_valeurs['id']}" class="interrupteur-allumer"></label>
|
||||||
|
<input type="radio" name="utilisateur[{$numero_entree}][etat_utilisateur]" id="eteint{$utilisateurs_valeurs['id']}" value="0" {$etat_interrupteur_eteint}>
|
||||||
|
<label for="eteint{$utilisateurs_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||||
|
</div>
|
||||||
|
<div class="titre-pastille">
|
||||||
|
<span>{$utilisateurs_valeurs['utilisateur']}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="input-label-detail-utilisateur btn btn-danger btn-sm" for="detail-utilisateur-{$utilisateurs_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="input-label-supprimer-valeur btn btn-danger btn-sm" for="supprimer-valeur-{$utilisateurs_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="checkbox" class="input-checkbox-detail-utilisateur visuellement-cache" id="detail-utilisateur-{$utilisateurs_valeurs['id']}">
|
||||||
|
<div class="detail-utilisateur card-footer">
|
||||||
|
<input class="form-control" type="text" name="utilisateur[{$numero_entree}][nom_complet_utilisateur]" value="{$utilisateurs_valeurs['nom_complet']}" placeholder="nom complet">
|
||||||
|
<input class="form-control" type="text" name="utilisateur[{$numero_entree}][prefixe_utilisateur]" value="{$utilisateurs_valeurs['prefixe']}" placeholder="prefixe" title="Texte s'ajoutant devant les alias de l'utilisateur afin de les discriminer de ceux des autres">
|
||||||
|
<input type="password" class="form-control" name="utilisateur[{$numero_entree}][mot_de_passe_utilisateur]" placeholder="nouveau mot de passe">
|
||||||
|
<input type="password" class="form-control" name="utilisateur[{$numero_entree}][confirmation_mot_de_passe_utilisateur]" placeholder="confirmation mot de passe">
|
||||||
|
|
||||||
|
<select class="form-select" name="utilisateur[{$numero_entree}][choix_privilege_utilisateur]">
|
||||||
|
<optgroup label="privilège">
|
||||||
|
_HEREDOC_;
|
||||||
|
echo "<option value=\"utilisateur\" title=\"Accès limité aux fonctionnalités\"";
|
||||||
|
if ($utilisateurs_valeurs['privilege']==="utilisateur") { echo " selected";};
|
||||||
|
echo ">utilisateur</option>";
|
||||||
|
echo "<option value=\"administrateur\" title=\"Accès complet et gestions des autres utilisateurs\"";
|
||||||
|
if ($utilisateurs_valeurs['privilege']==="administrateur") { echo " selected";};
|
||||||
|
echo ">administrateur</option>";
|
||||||
|
echo <<<_HEREDOC_
|
||||||
|
</optgroup>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="checkbox" class="input-checkbox-supprimer-valeur visuellement-cache" id="supprimer-valeur-{$utilisateurs_valeurs['id']}">
|
||||||
|
<a class="confirmation-suppression card-footer" href="/services/traitements/utilisateurs/supprUtilisateurs.php?supprUtilisateur={$utilisateurs_valeurs['id']}">Confirmer la suppression</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
_HEREDOC_;
|
||||||
|
$numero_entree++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<button id="enregistrer-modifications" class="bouton-flotant" type="submit"><img src="/fichiers/svg/save.svg"/></button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page de traitement permettant la création d'un utilisateur.
|
||||||
|
* Elle est appelée par le formulaire d'ajout d'un utilisateur (uniquement possible par un administrateur).
|
||||||
|
*/
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
if (testPrivileges()!="administrateur") {
|
||||||
|
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
||||||
|
|
||||||
|
if (isset($_POST['prefixe_utilisateur']) && isset($_POST['nom_utilisateur']) && !empty($_POST['nom_utilisateur']) && isset($_POST['choix_domaine_utilisateur']) && !empty($_POST['choix_domaine_utilisateur']) && isset($_POST['mot_de_passe_utilisateur']) && !empty($_POST['mot_de_passe_utilisateur']) && isset($_POST['nom_complet_utilisateur']) && isset($_POST['choix_privilege_utilisateur']) && !empty($_POST['choix_privilege_utilisateur'])) {
|
||||||
|
|
||||||
|
$liste_domaines = listeDomainesPostfix($pdo);
|
||||||
|
|
||||||
|
foreach ($liste_domaines as $domaine_cles => $domaine_valeurs){
|
||||||
|
// Vérification de l'existence du domaine renseigné par l'utilisateur
|
||||||
|
if ($_POST['choix_domaine_utilisateur'] === $domaine_valeurs['domaine']) {
|
||||||
|
if ($_POST['choix_privilege_utilisateur'] === 'utilisateur' || $_POST['prefixe_utilisateur'] === 'administrateur') {
|
||||||
|
ajoutUtilisateurBdd($pdo,$_POST['prefixe_utilisateur'],$_POST['nom_utilisateur'],$_POST['choix_domaine_utilisateur'],$_POST['mot_de_passe_utilisateur'],$_POST['nom_complet_utilisateur'],$_POST['choix_privilege_utilisateur']);
|
||||||
|
changeMotDePasseUtilisateurPostfix($pdo,substr(htmlspecialchars($_POST['nom_utilisateur']."@".$_POST['choix_domaine_utilisateur']),0,100),trim($_POST['mot_de_passe_utilisateur']),trim($_POST['mot_de_passe_utilisateur']));
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=20");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=27");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=26");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=26");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
/**
|
/**
|
||||||
* Page de traitement permettant le changement d'un utilisateur.
|
* 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 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é.
|
* Elle effectue ce changement en surchargeant la valeur de session relative à l'identité de l'utilisateur connecté.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ session_start ();
|
|||||||
if (!empty($_GET['succes'])) {
|
if (!empty($_GET['succes'])) {
|
||||||
$succes=$_GET['succes'];
|
$succes=$_GET['succes'];
|
||||||
}
|
}
|
||||||
|
elseif (!empty($_GET['erreur'])) {
|
||||||
|
$erreur=$_GET['erreur'];
|
||||||
|
}
|
||||||
// Destruction des variables de la session
|
// Destruction des variables de la session
|
||||||
session_unset();
|
session_unset();
|
||||||
// Destruction de la session
|
// Destruction de la session
|
||||||
@@ -21,6 +24,10 @@ if (!empty($succes)) {
|
|||||||
header('location: /pages/visiteurs/formulaire_accueil.php?succes='.$succes);
|
header('location: /pages/visiteurs/formulaire_accueil.php?succes='.$succes);
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
elseif (!empty($erreur)) {
|
||||||
|
header('location: /pages/visiteurs/formulaire_accueil.php?erreur='.$erreur);
|
||||||
|
die();
|
||||||
|
}
|
||||||
// Redirection de l'utilisateur vers la page d'authentifiaction
|
// Redirection de l'utilisateur vers la page d'authentifiaction
|
||||||
header('location: /pages/visiteurs/formulaire_accueil.php?succes=15');
|
header('location: /pages/visiteurs/formulaire_accueil.php?succes=15');
|
||||||
die();
|
die();
|
||||||
|
|||||||
@@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page de traitement permettant la modification des informations des utilisateurs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
testPrivileges();
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
|
||||||
|
$liste_utilisateurs = listeUtilisateursPostfix($pdo);
|
||||||
|
|
||||||
|
foreach ($liste_utilisateurs as $enieme_utilisateur_liste => $infos_utilisateur_liste){
|
||||||
|
// Vérification de la correspondance entre l'ID de l'utilisateur soumis par formulaire avec celui en base de données (évite l'usurpation d'utilisateurs)
|
||||||
|
if (isset($_POST['utilisateur'][$enieme_utilisateur_liste]['id_utilisateur']) && $_POST['utilisateur'][$enieme_utilisateur_liste]['id_utilisateur'] === $infos_utilisateur_liste['id']) {
|
||||||
|
if (isset($_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['nom_complet_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['prefixe_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur'])) {
|
||||||
|
// Vérification de l'existence de changements pour l'utilisateur parcouru. Cette condition évite de réécrire les données inchangées des utilisateurs non modifiés
|
||||||
|
if ($infos_utilisateur_liste['active'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'] || $infos_utilisateur_liste['nom_complet'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['nom_complet_utilisateur'] || $infos_utilisateur_liste['prefixe'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['prefixe_utilisateur'] || $infos_utilisateur_liste['privilege'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'] || !empty($_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur'])) {
|
||||||
|
// Vérification de la validité des informations de privilèges et d'état soumises au formulaire
|
||||||
|
if (($_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'] === "utilisateur" || $_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'] === "administrateur") && ($_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'] === "0" || $_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'] === "1")) {
|
||||||
|
$nouvelles_données_utilisateur=array(
|
||||||
|
"id_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['id_utilisateur'],
|
||||||
|
"nom_utilisateur" => $infos_utilisateur_liste['utilisateur'],
|
||||||
|
"etat_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'],
|
||||||
|
"nom_complet_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['nom_complet_utilisateur'],
|
||||||
|
"prefixe_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['prefixe_utilisateur'],
|
||||||
|
"choix_privilege_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'],
|
||||||
|
);
|
||||||
|
|
||||||
|
// Sécurité empêchant l'administrateur connecté de se désactiver lui-même
|
||||||
|
if ($nouvelles_données_utilisateur['nom_utilisateur'] === $_SESSION['pseudo_connexion_utilisateur']) {
|
||||||
|
$nouvelles_données_utilisateur['etat_utilisateur'] = "1";
|
||||||
|
}
|
||||||
|
|
||||||
|
modifUtilisateursBdd($pdo,$nouvelles_données_utilisateur);
|
||||||
|
|
||||||
|
// Changement du mot de passe de l'utilisateur
|
||||||
|
if (!empty($_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur']) && !empty($_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur']) && $_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur'] === $_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur']) {
|
||||||
|
changeMotDePasseUtilisateurPostfix($pdo,$nouvelles_données_utilisateur['nom_utilisateur'],$_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur'],$_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Si aucun changement sur l'utilisateur parcouru, ne rien faire et passer au suivant
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=22");
|
||||||
|
die();
|
||||||
|
|
||||||
|
|
||||||
|
/*$numero_entree=1;
|
||||||
|
foreach ($_POST as $cle_post => $infos_utilisateur){
|
||||||
|
$toto=$_POST["id_utilisateur$numero_entree"];
|
||||||
|
echo $_POST["nom_complet_utilisateur$toto"];/*
|
||||||
|
// Vérification de l'existance du domaine renseigné par l'utilisateur
|
||||||
|
/*if ($_POST['choix_domaine_utilisateur'] === $domaine_valeurs['domaine']) {
|
||||||
|
if ($_POST['choix_privilege_utilisateur'] === 'utilisateur' || $_POST['prefixe_utilisateur'] === 'administrateur') {
|
||||||
|
modifUtilisateursBdd($pdo,$_POST["nom_complet_utilisateur$id_utilisateur"],$_POST["prefixe_utilisateur$id_utilisateur"],$_POST["choix_privilege_utilisateur$id_utilisateur"],$_POST['mot_de_passe_utilisateur'],$_POST['nom_complet_utilisateur'],$_POST['choix_privilege_utilisateur']);
|
||||||
|
changeMotDePasseUtilisateurPostfix($pdo,substr(htmlspecialchars($_POST['nom_utilisateur']."@".$_POST['choix_domaine_utilisateur']),0,100),trim($_POST['mot_de_passe_utilisateur']),trim($_POST['mot_de_passe_utilisateur']));
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=20");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=27");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
/*$numero_entree++;
|
||||||
|
}*/
|
||||||
|
//echo "$id_utilisateur";
|
||||||
|
//echo "$infos_utilisateur";
|
||||||
|
/*die();
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=26");
|
||||||
|
die();
|
||||||
|
|
||||||
|
|
||||||
|
modifUtilisateursBdd($pdo,$_POST);
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=22");*/
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page de traitement permettant la suppression d'un utilisateur.
|
||||||
|
*/
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
testPrivileges();
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php");
|
||||||
|
|
||||||
|
$pseudo_utilisateur_bdd=listeUtilisateurBdd($pdo,$_GET['supprUtilisateur']);
|
||||||
|
|
||||||
|
if(isset($_GET['supprUtilisateur']) && !empty($_GET['supprUtilisateur']) && supprTousAliasVirtuelsUtilisateurBdd($pdo,$_GET['supprUtilisateur'])) {
|
||||||
|
if (supprUtilisateursBdd($pdo,$_GET['supprUtilisateur'])) {
|
||||||
|
// Si l'utilisateur à modifier a été changé via la liste déroulante dédiée sur celui venant d'être supprimé, ce paramètre est réinitialisé à sa valeur par défaut pour ne plus éditer les valeurs de l'utilisateur n'existant plus
|
||||||
|
if ($_SESSION['pseudo_utilisateur']===$pseudo_utilisateur_bdd[0]['utilisateur']) {
|
||||||
|
$_SESSION['pseudo_utilisateur'] = $_SESSION['pseudo_connexion_utilisateur'];
|
||||||
|
}
|
||||||
|
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=21");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=28");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=utilisateurs&erreur=29");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user