Compare commits
14 Commits
650af8c94f
...
V1.1.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 42c09260fa | |||
| ac5ca20de6 | |||
| 6b433361b3 | |||
| f3c057aec2 | |||
| b2248c3715 | |||
| b4e9654ad1 | |||
| 561139835b | |||
| d77dcc32db | |||
| d67d257947 | |||
| 2d0186e63d | |||
| d1054cf55e | |||
| f92855e126 | |||
| 548c1794fb | |||
| d597b1a5bf |
@@ -9,7 +9,7 @@ L'objectif de Courtail est de permettre le paramétrage de certaines fonctionnal
|
||||
* ajout, activation/désactivation, suppression des alias virtuels
|
||||
* ajout, activation/désactivation, suppression des domaines
|
||||
* ajout, activation/désactivation, suppression des adresses en liste noire
|
||||
* changement de mot de passe des utilisateurs
|
||||
* ajout, activation/désactivation, suppression, changement de préfixe, changement de mot de passe, changement de privilège des utilisateurs
|
||||
* exportation/importation des alias virtuels d'un utilisateur
|
||||
* exportation/importation des données (à la carte) du site
|
||||
|
||||
@@ -62,4 +62,6 @@ Plusieurs utilisateurs sont créés dans notre exemple :
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Style concernant la confirmation de suppression d'un alias virtuel */
|
||||
/* Style concernant les menus déroulants d'une pastille */
|
||||
.confirmation-suppression {
|
||||
display: none;
|
||||
color: #fff;
|
||||
@@ -14,39 +14,23 @@
|
||||
}
|
||||
|
||||
.input-checkbox-supprimer-valeur:checked ~ .confirmation-suppression {
|
||||
display: inline;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/*.input-label-supprimer-valeur {
|
||||
color: #ffffff;
|
||||
background: #e23026;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
}*/
|
||||
|
||||
.visuellement-cache {
|
||||
position: absolute;
|
||||
left: -100vw;
|
||||
position: absolute;
|
||||
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;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Sources :
|
||||
@@ -54,3 +38,12 @@
|
||||
* https://dabblet.com/gist/1506530
|
||||
* https://css-tricks.com/the-checkbox-hack/
|
||||
*/
|
||||
|
||||
/* Style concernant le message d'avertissement concernant les fichiers d'un utilisateur après sa suppression dans les menus déroulants d'une pastille */
|
||||
.confirmation-avertissement-info {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.input-checkbox-supprimer-valeur:checked ~ .confirmation-avertissement-info {
|
||||
display: inline;
|
||||
}
|
||||
@@ -113,3 +113,30 @@ body {
|
||||
.max-hauteur-pastille{
|
||||
height: calc(100% - 1.5em);
|
||||
}
|
||||
|
||||
.survol{
|
||||
display: inline-block;
|
||||
}
|
||||
.survol:hover .message-survol {
|
||||
overflow: hidden;
|
||||
padding: 12px 12px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.message-survol {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
z-index: 7;
|
||||
background: #343a40;
|
||||
color: #FFFFFF;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 6px;
|
||||
height: 0px;
|
||||
width: 0px;
|
||||
padding: 0 12px;
|
||||
overflow: hidden;
|
||||
/*-webkit-transition: all 500ms;
|
||||
transition: all 500ms;*/
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevrons-up"><polyline points="17 11 12 6 7 11"></polyline><polyline points="17 18 12 13 7 18"></polyline></svg>
|
||||
|
After Width: | Height: | Size: 311 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||
|
After Width: | Height: | Size: 357 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
|
||||
|
After Width: | Height: | Size: 338 B |
|
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 |
@@ -56,7 +56,8 @@ if (isset($_GET['page']) && !empty($_GET['page'])) {
|
||||
break;
|
||||
|
||||
default:
|
||||
echo "<h1>Cette page n'existe pas.</h1>";
|
||||
http_response_code(404);
|
||||
echo "<h1>Cette page n'existe pas.</h1>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php")
|
||||
function listeAliasVirtuelsBdd($pdo) {
|
||||
try {
|
||||
// Filtre des alias virtuels de l'utilisateur courant
|
||||
$req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination ORDER BY courriel ASC';
|
||||
$req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination ORDER BY id DESC';
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':destination',$_SESSION['pseudo_utilisateur']);
|
||||
$sql->execute();
|
||||
@@ -93,13 +93,15 @@ function modifEtatAliasVirtuelsBdd($pdo,$retour_form) {
|
||||
try {
|
||||
$compteModifs=0;
|
||||
foreach ($retour_form as $id_alias_virtuel => $etat_alias_virtuel) {
|
||||
$req='UPDATE postfix_alias_virtuels SET active=:etat_alias_virtuel WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
|
||||
if ($etat_alias_virtuel==0 || $etat_alias_virtuel==1) {
|
||||
$req='UPDATE postfix_alias_virtuels SET active=:etat_alias_virtuel WHERE id=:id_alias_virtuel AND destination=:pseudo_utilisateur';
|
||||
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':etat_alias_virtuel',$etat_alias_virtuel);
|
||||
$sql->bindValue(':id_alias_virtuel',$id_alias_virtuel);
|
||||
$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
|
||||
$sql->execute();
|
||||
$sql=$pdo->prepare($req);
|
||||
$sql->bindValue(':etat_alias_virtuel',$etat_alias_virtuel);
|
||||
$sql->bindValue(':id_alias_virtuel',$id_alias_virtuel);
|
||||
$sql->bindValue(':pseudo_utilisateur',$_SESSION['pseudo_utilisateur']);
|
||||
$sql->execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
|
||||
@@ -123,9 +123,7 @@ _HEREDOC_;
|
||||
<input type="radio" name="{$alias_virtuels_valeurs['id']}" id="eteint{$alias_virtuels_valeurs['id']}" onchange="activationBoutonFlotant(this)" value="0" {$etat_interrupteur_eteint}>
|
||||
<label for="eteint{$alias_virtuels_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||
</div>
|
||||
<div class="titre-pastille">
|
||||
<span>{$alias_virtuels_valeurs['courriel']}</span>
|
||||
</div>
|
||||
<div class="titre-pastille"><span>{$alias_virtuels_valeurs['courriel']}</span></div>
|
||||
<div>
|
||||
<label class="input-label-supprimer-valeur btn btn-danger btn-sm" for="supprimer-valeur-{$alias_virtuels_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||
</div>
|
||||
|
||||
@@ -85,7 +85,8 @@ $liste_domaines = listeDomainesBdd($pdo);
|
||||
if (isset($liste_domaines_valeurs['active']) && $liste_domaines_valeurs['active']=="1") {
|
||||
$etat_interrupteur_allumer="checked";
|
||||
$etat_interrupteur_eteint="";
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$etat_interrupteur_eteint="checked";
|
||||
$etat_interrupteur_allumer="";
|
||||
}
|
||||
@@ -93,7 +94,8 @@ $liste_domaines = listeDomainesBdd($pdo);
|
||||
$etat_bouton="disabled";
|
||||
$bordure_pastille="border-primary interieur-pastille-bleu";
|
||||
$post_texte=" <span class=\"text-primary\">(défaut)</span>";
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$etat_bouton="";
|
||||
$bordure_pastille="";
|
||||
$post_texte="";
|
||||
@@ -108,9 +110,7 @@ $liste_domaines = listeDomainesBdd($pdo);
|
||||
<input type="radio" name="{$liste_domaines_valeurs['id']}" id="eteint{$liste_domaines_valeurs['id']}" onchange="activationBoutonFlotant(this)" value="0" {$etat_interrupteur_eteint}>
|
||||
<label for="eteint{$liste_domaines_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||
</div>
|
||||
<div class="titre-pastille">
|
||||
<span>{$liste_domaines_valeurs['domaine']}{$post_texte}</span>
|
||||
</div>
|
||||
<div class="titre-pastille"><span>{$liste_domaines_valeurs['domaine']}{$post_texte}</span></div>
|
||||
<div>
|
||||
<label class="input-label-supprimer-valeur btn btn-danger btn-sm {$etat_bouton}" for="supprimer-valeur-{$liste_domaines_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||
</div>
|
||||
|
||||
@@ -68,9 +68,7 @@ if (isset($_GET['sousPage']) && !empty($_GET['sousPage'])) {
|
||||
<input type="radio" name="{$liste_entrees_liste_noires_dst_valeurs['id']}" id="eteint{$liste_entrees_liste_noires_dst_valeurs['id']}" onchange="activationBoutonFlotant(this)" value="0" {$etat_interrupteur_eteint}>
|
||||
<label for="eteint{$liste_entrees_liste_noires_dst_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||
</div>
|
||||
<div class="titre-pastille">
|
||||
<span>{$liste_entrees_liste_noires_dst_valeurs['courriel']} <img class="chevron-dst" src="/fichiers/svg/chevron-right.svg" /> <span class="badge fond-arc-noire">{$liste_entrees_liste_noires_dst_valeurs['action']}</span></span>
|
||||
</div>
|
||||
<div class="titre-pastille"><span>{$liste_entrees_liste_noires_dst_valeurs['courriel']} <img class="chevron-dst" src="/fichiers/svg/chevron-right.svg" /> <span class="badge fond-arc-noire">{$liste_entrees_liste_noires_dst_valeurs['action']}</span></span></div>
|
||||
<div>
|
||||
<label class="input-label-supprimer-valeur btn btn-danger btn-sm" for="supprimer-valeur-{$liste_entrees_liste_noires_dst_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||
</div>
|
||||
@@ -138,9 +136,7 @@ if (isset($_GET['sousPage']) && !empty($_GET['sousPage'])) {
|
||||
<input type="radio" name="{$liste_entrees_liste_noires_exp_valeurs['id']}" id="eteint{$liste_entrees_liste_noires_exp_valeurs['id']}" onchange="activationBoutonFlotant(this)" value="0" {$etat_interrupteur_eteint}>
|
||||
<label for="eteint{$liste_entrees_liste_noires_exp_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||
</div>
|
||||
<div class="titre-pastille">
|
||||
<span><span class="badge fond-arc-noire">{$liste_entrees_liste_noires_exp_valeurs['code_retour']}</span> <img class="chevron-dst" src="/fichiers/svg/chevron-right.svg" /> {$liste_entrees_liste_noires_exp_valeurs['courriel']}</span>
|
||||
</div>
|
||||
<div class="titre-pastille"><span><span class="badge fond-arc-noire">{$liste_entrees_liste_noires_exp_valeurs['code_retour']}</span> <img class="chevron-dst" src="/fichiers/svg/chevron-right.svg" /> {$liste_entrees_liste_noires_exp_valeurs['courriel']}</span></div>
|
||||
<div>
|
||||
<label class="input-label-supprimer-valeur btn btn-danger btn-sm" for="supprimer-valeur-{$liste_entrees_liste_noires_exp_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||
</div>
|
||||
|
||||
@@ -11,14 +11,13 @@ $prefixe_utilisateur = retournePrefixeUtilisateurBdd($pdo,$_SESSION['pseudo_util
|
||||
|
||||
if ($_SESSION['pseudo_connexion_utilisateur'] !== $_SESSION['pseudo_utilisateur']){
|
||||
$message_alert_utilisateur="<div class=\"alert alert-warning mt-2 mb-2\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle-warning.svg\"/> Vous allez modifier les paramètres d'un autre utilisateur que vous.</div>";
|
||||
}else{
|
||||
} else{
|
||||
$message_alert_utilisateur="";
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur.
|
||||
*/
|
||||
|
||||
if (testPrivileges()==="administrateur") {
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12">
|
||||
@@ -54,23 +53,19 @@ if (testPrivileges()==="administrateur") {
|
||||
}
|
||||
|
||||
/**
|
||||
* Changement du mot de passe d'un utilisateur.
|
||||
* Changement du mot de passe de l'utilisateur courant.
|
||||
*/
|
||||
if ($_SESSION['privilege_utilisateur']==="administrateur" && !empty($prefixe_utilisateur)){
|
||||
$message="<div class=\"mt-2 mb-2 alert alert-primary\" role=\"alert\">Préfixe actuel de ".$_SESSION['pseudo_utilisateur']." : <span class=\"badge bg-primary\">".$prefixe_utilisateur."</span></div>";
|
||||
}else{
|
||||
$message="";
|
||||
}
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-12<?php if ($_SESSION['privilege_utilisateur']==="administrateur") {echo ' col-xl-6';}?>">
|
||||
<div class="col-12 col-md-12">
|
||||
<?php if ($_SESSION['privilege_utilisateur']==="utilisateur" && !empty($prefixe_utilisateur)){ ?>
|
||||
<div class="card mt-4 max-hauteur-pastille">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Modifier le mot de passe<?php if ($_SESSION['privilege_utilisateur']==="administrateur") {echo ' de '.$_SESSION['pseudo_utilisateur'];} ?></h5>
|
||||
<h5 class="card-title">Modifier le mot de passe</h5>
|
||||
<?php echo $message_alert_utilisateur; ?>
|
||||
<form action="/services/traitements/utilisateurs/changeMotDePasseUtilisateur.php" method="post">
|
||||
<div class="input-group">
|
||||
<?php if ($_SESSION['privilege_utilisateur']==="utilisateur") { echo '<input type="password" class="form-control" name="ancien_mot_de_passe" placeholder="Ancien mot de passe" required>'; } ?>
|
||||
<input type="password" class="form-control" name="ancien_mot_de_passe" placeholder="Ancien mot de passe" required>
|
||||
<input type="password" class="form-control" name="nouveau_mot_de_passe" placeholder="Nouveau mot de passe" required>
|
||||
<input type="password" class="form-control" name="confirmation_mot_de_passe" placeholder="Confirmation mot de passe" required>
|
||||
<button class="btn btn-primary bouton-ajout" type="submit">Modifier</button>
|
||||
@@ -78,29 +73,13 @@ if ($_SESSION['privilege_utilisateur']==="administrateur" && !empty($prefixe_uti
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if ($_SESSION['privilege_utilisateur']==="administrateur") {
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12 col-md-12 col-xl-6">
|
||||
<div class="card mt-4 max-hauteur-pastille">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Modifier le préfixe de {$_SESSION['pseudo_utilisateur']}</h5>
|
||||
{$message}
|
||||
{$message_alert_utilisateur}
|
||||
<form action="/services/traitements/utilisateurs/changePrefixeUtilisateur.php" method="post">
|
||||
<div class="input-group">
|
||||
<input class="form-control" type="text" name="nouveau_prefixe" placeholder="Nouveau prefixe">
|
||||
<button class="btn btn-primary bouton-ajout" type="submit">Appliquer</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
_HEREDOC_;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sauvegarde des alias virtuels de l'utilisateur sélectionné.
|
||||
*/
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12 col-md-12 col-xl-6">
|
||||
<div class="card mt-4 max-hauteur-pastille">
|
||||
@@ -114,6 +93,9 @@ if ($_SESSION['privilege_utilisateur']==="administrateur" && !empty($prefixe_uti
|
||||
</div>
|
||||
_HEREDOC_;
|
||||
|
||||
/**
|
||||
* Restauration des alias virtuels de l'utilisateur sélectionné.
|
||||
*/
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12 col-md-12 col-xl-6">
|
||||
<div class="card mt-4 max-hauteur-pastille">
|
||||
@@ -132,6 +114,9 @@ if ($_SESSION['privilege_utilisateur']==="administrateur" && !empty($prefixe_uti
|
||||
</div>
|
||||
_HEREDOC_;
|
||||
|
||||
/**
|
||||
* Sauvegarde de la base de données selon la sélection de l'administrateur.
|
||||
*/
|
||||
if ($_SESSION['privilege_utilisateur']==="administrateur") {
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12 col-md-12 col-xl-6">
|
||||
@@ -169,6 +154,9 @@ if ($_SESSION['privilege_utilisateur']==="administrateur" && !empty($prefixe_uti
|
||||
_HEREDOC_;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restauration de la base de données selon la sélection de l'administrateur.
|
||||
*/
|
||||
if ($_SESSION['privilege_utilisateur']==="administrateur") {
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12 col-md-12 col-xl-6">
|
||||
@@ -210,6 +198,19 @@ if ($_SESSION['privilege_utilisateur']==="administrateur" && !empty($prefixe_uti
|
||||
_HEREDOC_;
|
||||
}
|
||||
|
||||
if ($_SESSION['privilege_utilisateur']==="administrateur") {
|
||||
echo <<<_HEREDOC_
|
||||
<div class="col-12 col-md-12 col-xl-12">
|
||||
<div class="card mt-4 max-hauteur-pastille">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Informations du site</h5>
|
||||
<p class="mb-0">Version de Courtail : <a href="https://gitea.ycharbi.fr/YC-NM/Courtail/releases">v1.1.0</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
_HEREDOC_;
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -21,39 +21,53 @@ $liste_domaines = listeDomainesBdd($pdo);
|
||||
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="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">
|
||||
<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";
|
||||
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());
|
||||
}
|
||||
}
|
||||
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>
|
||||
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>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
_HEREDOC_;
|
||||
@@ -82,37 +96,48 @@ _HEREDOC_;
|
||||
$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">
|
||||
<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>
|
||||
</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-danger btn-sm" for="detail-utilisateur-{$utilisateurs_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||
<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" for="supprimer-valeur-{$utilisateurs_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||
<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" 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">
|
||||
<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" name="utilisateur[{$numero_entree}][choix_privilege_utilisateur]">
|
||||
<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\"";
|
||||
@@ -127,6 +152,7 @@ _HEREDOC_;
|
||||
</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>
|
||||
|
||||
@@ -11,5 +11,6 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.
|
||||
|
||||
modifEtatAliasVirtuelsBdd($pdo,$_POST);
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&succes=2");
|
||||
die();
|
||||
|
||||
?>
|
||||
@@ -11,9 +11,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.
|
||||
|
||||
if(isset($_GET['supprAliasVirtuel']) && !empty($_GET['supprAliasVirtuel']) && supprAliasVirtuelsBdd($pdo,$_GET['supprAliasVirtuel'])) {
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&succes=3");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/gestion/administration.php?page=alias&erreur=1");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -14,5 +14,6 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
||||
|
||||
modifEtatDomainesBdd($pdo,$_POST);
|
||||
header ("Location: /pages/gestion/administration.php?page=domaines&succes=6");
|
||||
die();
|
||||
|
||||
?>
|
||||
@@ -14,9 +14,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
||||
|
||||
if(isset($_GET['supprDomaine']) && !empty($_GET['supprDomaine']) && supprDomainesBdd($pdo,$_GET['supprDomaine'])) {
|
||||
header ("Location: /pages/gestion/administration.php?page=domaines&succes=7");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/gestion/administration.php?page=domaines&erreur=5");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -14,9 +14,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.p
|
||||
|
||||
if(isset($_GET['supprEntreeListeNoireDst']) && !empty($_GET['supprEntreeListeNoireDst']) && supprEntreeListeNoireDstBdd($pdo,$_GET['supprEntreeListeNoireDst'])) {
|
||||
header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&succes=11");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=destinataires&erreur=11");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -14,9 +14,11 @@ require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.p
|
||||
|
||||
if(isset($_GET['supprEntreeListeNoireExp']) && !empty($_GET['supprEntreeListeNoireExp']) && supprEntreeListeNoireExpBdd($pdo,$_GET['supprEntreeListeNoireExp'])) {
|
||||
header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&succes=14");
|
||||
die();
|
||||
}
|
||||
else {
|
||||
header ("Location: /pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs&erreur=15");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -22,7 +22,7 @@ if (isset($_POST['prefixe_utilisateur']) && isset($_POST['nom_utilisateur']) &&
|
||||
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') {
|
||||
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");
|
||||
|
||||
@@ -31,4 +31,5 @@ elseif (!empty($erreur)) {
|
||||
// Redirection de l'utilisateur vers la page d'authentifiaction
|
||||
header('location: /pages/visiteurs/formulaire_accueil.php?succes=15');
|
||||
die();
|
||||
|
||||
?>
|
||||
|
||||
@@ -49,34 +49,4 @@ foreach ($liste_utilisateurs as $enieme_utilisateur_liste => $infos_utilisateur_
|
||||
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']);
|
||||
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();
|
||||
}
|
||||
}*/
|
||||
/*$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");*/
|
||||
|
||||
?>
|
||||
@@ -16,7 +16,7 @@ if(isset($_GET['supprUtilisateur']) && !empty($_GET['supprUtilisateur']) && supp
|
||||
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'];
|
||||
$_SESSION['pseudo_utilisateur']=$_SESSION['pseudo_connexion_utilisateur'];
|
||||
}
|
||||
|
||||
header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=21");
|
||||
|
||||