Compare commits
17 Commits
d597b1a5bf
...
42c09260fa
Author | SHA1 | Date |
---|---|---|
nmorin | 42c09260fa | 1 year ago |
nmorin | ac5ca20de6 | 1 year ago |
ycharbi | 6b433361b3 | 1 year ago |
ycharbi | f3c057aec2 | 1 year ago |
ycharbi | b2248c3715 | 1 year ago |
ycharbi | b4e9654ad1 | 2 years ago |
ycharbi | 561139835b | 2 years ago |
ycharbi | d77dcc32db | 2 years ago |
ycharbi | d67d257947 | 2 years ago |
ycharbi | 2d0186e63d | 2 years ago |
ycharbi | d1054cf55e | 2 years ago |
ycharbi | f92855e126 | 2 years ago |
ycharbi | 548c1794fb | 2 years ago |
ycharbi | 650af8c94f | 2 years ago |
ycharbi | 14c055d868 | 2 years ago |
ycharbi | 3bd350e761 | 2 years ago |
ycharbi | d3baa6166c | 2 years ago |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 357 B |
After Width: | Height: | Size: 338 B |
@ -1,4 +1,5 @@
|
||||
<script src="/fichiers/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="/fichiers/js/formulaire.js"></script>
|
||||
<script src="/fichiers/js/filtre.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 88 KiB |
@ -0,0 +1,173 @@
|
||||
<?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 = listeTousUtilisateursBdd($pdo);
|
||||
$liste_domaines = listeDomainesBdd($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/ajoutUtilisateur.php" method="post">
|
||||
<div class="row">
|
||||
<div class="col-xl-5 col-12 pt-2">
|
||||
<div class="input-group">
|
||||
<input class="form-control" type="text" name="prefixe_utilisateur" placeholder="prefixe" title="Texte s'ajoutant devant les alias de l'utilisateur 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();" title="Identifiant de l'utilisateur" required>
|
||||
<span class="input-group-text">@</span>
|
||||
<select class="form-select" name="choix_domaine_utilisateur" title="Choix d'un nom de domaine existant">
|
||||
_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>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-2 col-4 pt-2">
|
||||
<input type="password" class="form-control" name="mot_de_passe_utilisateur" placeholder="mot de passe *" title="Changement du mot de passe de l'utilisateur" required>
|
||||
</div>
|
||||
<div class="col-xl-2 col-4 pt-2 ps-0 pe-0">
|
||||
<input class="form-control" type="text" name="nom_complet_utilisateur" placeholder="nom complet" title="Nom complet de l'utilisateur">
|
||||
</div>
|
||||
<div class="col-xl-2 col-4 pt-2">
|
||||
<div class="input-group">
|
||||
<select class="form-select" name="choix_privilege_utilisateur" title="Privilège de l'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>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-1 col-12 pt-2">
|
||||
<button class="btn btn-primary bouton-ajout" style="width: 100%;" type="submit">Appliquer</button>
|
||||
</div>
|
||||
</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/editUtilisateur.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="";
|
||||
}
|
||||
if (isset($utilisateurs_valeurs['utilisateur']) && $utilisateurs_valeurs['utilisateur'] === $_SESSION['pseudo_connexion_utilisateur']) {
|
||||
$etat_bouton_etat="disabled";
|
||||
$etat_bouton_suppr="disabled";
|
||||
}
|
||||
else {
|
||||
$etat_bouton_etat="";
|
||||
$etat_bouton_suppr="";
|
||||
}
|
||||
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 $etat_bouton_etat">
|
||||
<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>
|
||||
_HEREDOC_;
|
||||
if ($utilisateurs_valeurs['privilege'] === "administrateur") {
|
||||
echo '<div class="survol"><span style="padding: 0; margin-left: 5px" class="badge fond-arc-noire"><img style="width: 80%" src="/fichiers/svg/chevrons-up.svg"></img></span><div class="message-survol">Cet utilisateur est un administrateur</div></div>';
|
||||
}
|
||||
echo '</div>';
|
||||
echo <<<_HEREDOC_
|
||||
<div>
|
||||
<label class="input-label-detail-utilisateur btn btn-primary btn-sm me-1" for="detail-utilisateur-{$utilisateurs_valeurs['id']}"><img src="/fichiers/svg/menu.svg"></label>
|
||||
</div>
|
||||
<div>
|
||||
<label class="input-label-supprimer-valeur btn btn-danger btn-sm $etat_bouton_suppr" 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 mt-2" type="text" name="utilisateur[{$numero_entree}][nom_complet_utilisateur]" value="{$utilisateurs_valeurs['nom_complet']}" placeholder="nom complet" title="Nom complet de l'utilisateur">
|
||||
<input class="form-control mt-2" 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 mt-2" name="utilisateur[{$numero_entree}][mot_de_passe_utilisateur]" placeholder="nouveau mot de passe" title="Changement du mot de passe de l'utilisateur">
|
||||
<input type="password" class="form-control mt-2" name="utilisateur[{$numero_entree}][confirmation_mot_de_passe_utilisateur]" placeholder="confirmation mot de passe" title="Confirmation du nouveau mot de passe">
|
||||
|
||||
<select class="form-select mt-2 mb-2" name="utilisateur[{$numero_entree}][choix_privilege_utilisateur]" title="Privilège de l'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']}">
|
||||
<div class="confirmation-avertissement-info alert alert-warning" role="alert"><img src="/fichiers/svg/alert-triangle-warning.svg"/> Les fichiers de l'utilisateur devront être supprimés manuellement du serveur</div>
|
||||
<a class="confirmation-suppression card-footer" href="/services/traitements/utilisateurs/supprUtilisateur.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 = listeDomainesBdd($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['choix_privilege_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']);
|
||||
changeMotDePasseUtilisateurBdd($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();
|
||||
}
|
||||
|
||||
?>
|
@ -0,0 +1,52 @@
|
||||
<?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 = listeTousUtilisateursBdd($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']) {
|
||||
changeMotDePasseUtilisateurBdd($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();
|
||||
|
||||
?>
|
@ -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();
|
||||
}
|
||||
|
||||
?>
|