Ajout code pour affichage du bouton si formulaire modifié #7
@@ -7,25 +7,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");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
|
||||||
/**
|
|
||||||
* Fonction listant le préfixe de l'utilisateur courant.
|
|
||||||
*/
|
|
||||||
function retournePrefixeUtilisateurPostfix($pdo) {
|
|
||||||
try {
|
|
||||||
$req = 'SELECT prefixe FROM postfix_utilisateurs WHERE utilisateur=:utilisateur';
|
|
||||||
$sql=$pdo->prepare($req);
|
|
||||||
$sql->bindValue(':utilisateur',$_SESSION['pseudo_utilisateur']);
|
|
||||||
$sql->execute();
|
|
||||||
|
|
||||||
$prefixe_utilisateur=$sql->fetchAll();
|
|
||||||
return $prefixe_utilisateur[0]['prefixe'];
|
|
||||||
}
|
|
||||||
catch (\Exception $e) {
|
|
||||||
die ("Erreur de requête de selection des alias virtuels : ".$e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction listant les alias virtuels.
|
* Fonction listant les alias virtuels.
|
||||||
*/
|
*/
|
||||||
@@ -55,7 +36,7 @@ function ajoutAliasVirtuelsPostfix($pdo,$nom_alias_virtuel,$choix_domaine_alias_
|
|||||||
|
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
|
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
|
||||||
$sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,100));
|
$sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur']).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,100));
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
if ($sql->rowCount() == 1){
|
if ($sql->rowCount() == 1){
|
||||||
|
|||||||
@@ -72,8 +72,6 @@ function changeDomaineDefautPostfix($pdo,$choix_domaine_defaut) {
|
|||||||
catch (\Exception $e) {
|
catch (\Exception $e) {
|
||||||
// Récupération du code de retour de la commande SQLite
|
// Récupération du code de retour de la commande SQLite
|
||||||
$code_retour=$sql->errorInfo();
|
$code_retour=$sql->errorInfo();
|
||||||
var_dump($code_retour);
|
|
||||||
die();
|
|
||||||
|
|
||||||
if ($code_retour[0]=="HY000") {
|
if ($code_retour[0]=="HY000") {
|
||||||
// Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
|
// Code de retour envoyé par le pilote PDO SQLite lorsque la base est accessible en lecture seule à www-data
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ function listeEntreeListeNoireExpPostfix($pdo) {
|
|||||||
return $liste_entree_liste_noire_exp;
|
return $liste_entree_liste_noire_exp;
|
||||||
}
|
}
|
||||||
catch (\Exception $e) {
|
catch (\Exception $e) {
|
||||||
die ("Erreur de requête de selection des entrées de liste noire expéditeurs pour \"$base\" : ".$e->getMessage());
|
die ("Erreur de requête de selection des entrées de liste noire expéditeurs : ".$e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,14 +19,14 @@ function listeUtilisateursPostfix($pdo) {
|
|||||||
return $liste_utilisateurs;
|
return $liste_utilisateurs;
|
||||||
}
|
}
|
||||||
catch (\Exception $e) {
|
catch (\Exception $e) {
|
||||||
die ("Erreur de requête de selection des utilisateurs pour \"$base\" : ".$e->getMessage());
|
die ("Erreur de requête de selection des utilisateurs : ".$e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction vérifiant le mot de passe actuel d'un utilisateur.
|
* Fonction vérifiant le mot de passe actuel d'un utilisateur.
|
||||||
*/
|
*/
|
||||||
function verificationMotDePasse($pdo,$identifiant,$mdp) {
|
function verificationMotDePasseUtilisateurPostfix($pdo,$identifiant,$mdp) {
|
||||||
try {
|
try {
|
||||||
$req = 'SELECT mot_de_passe FROM postfix_utilisateurs WHERE utilisateur=:identifiant';
|
$req = 'SELECT mot_de_passe FROM postfix_utilisateurs WHERE utilisateur=:identifiant';
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ function verificationMotDePasse($pdo,$identifiant,$mdp) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
catch(PDOException $e) {
|
catch(PDOException $e) {
|
||||||
die ("Erreur lors du traitement de la requête : " . $e->getMessage());
|
die ("Erreur lors du traitement de la requête de vérification du mot de passe utilisateur : " . $e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($comptage == 1) {
|
if ($comptage == 1) {
|
||||||
@@ -63,7 +63,7 @@ function verificationMotDePasse($pdo,$identifiant,$mdp) {
|
|||||||
/**
|
/**
|
||||||
* Fonction changeant le mot de passe d'un utilisateur.
|
* Fonction changeant le mot de passe d'un utilisateur.
|
||||||
*/
|
*/
|
||||||
function changeMotDePasseUtilisateursPostfix($pdo,$identifiant,$nouveau_mdp,$confirmation_mdp) {
|
function changeMotDePasseUtilisateurPostfix($pdo,$utilisateur,$nouveau_mdp,$confirmation_mdp) {
|
||||||
if ($nouveau_mdp===$confirmation_mdp) {
|
if ($nouveau_mdp===$confirmation_mdp) {
|
||||||
$caracters = '.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
$caracters = '.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||||
$chaine_aleatoire = '';
|
$chaine_aleatoire = '';
|
||||||
@@ -78,14 +78,14 @@ function changeMotDePasseUtilisateursPostfix($pdo,$identifiant,$nouveau_mdp,$con
|
|||||||
$mot_de_passe_hachis='{SHA512-CRYPT}'.crypt(trim($nouveau_mdp),'$6$'.$chaine_aleatoire);
|
$mot_de_passe_hachis='{SHA512-CRYPT}'.crypt(trim($nouveau_mdp),'$6$'.$chaine_aleatoire);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$req = 'UPDATE postfix_utilisateurs SET mot_de_passe=:nouveau_mdp WHERE utilisateur=:identifiant';
|
$req = 'UPDATE postfix_utilisateurs SET mot_de_passe=:nouveau_mdp WHERE utilisateur=:utilisateur';
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':identifiant', $identifiant);
|
$sql->bindValue(':utilisateur', $utilisateur);
|
||||||
$sql->bindValue(':nouveau_mdp', $mot_de_passe_hachis);
|
$sql->bindValue(':nouveau_mdp', $mot_de_passe_hachis);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
}
|
}
|
||||||
catch (\Exception $e) {
|
catch (\Exception $e) {
|
||||||
die ("Erreur de requête de selection des utilisateurs pour \"$base\" : ".$e->getMessage());
|
die ("Erreur de requête de changement de mot de passe utilisateur : ".$e->getMessage());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -94,4 +94,40 @@ function changeMotDePasseUtilisateursPostfix($pdo,$identifiant,$nouveau_mdp,$con
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction listant le préfixe de l'utilisateur courant.
|
||||||
|
*/
|
||||||
|
function retournePrefixeUtilisateurPostfix($pdo,$utilisateur) {
|
||||||
|
try {
|
||||||
|
$req = 'SELECT prefixe FROM postfix_utilisateurs WHERE utilisateur=:utilisateur';
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':utilisateur', $utilisateur);
|
||||||
|
$sql->execute();
|
||||||
|
|
||||||
|
$prefixe_utilisateurs = $sql->fetchAll();
|
||||||
|
return $prefixe_utilisateurs[0]['prefixe'];
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de changement de préfixe utilisateur : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction changeant le préfixe d'un utilisateur.
|
||||||
|
*/
|
||||||
|
function changePrefixeUtilisateurPostfix($pdo,$utilisateur,$nouveau_prefixe) {
|
||||||
|
try {
|
||||||
|
$req = 'UPDATE postfix_utilisateurs SET prefixe=:nouveau_prefixe WHERE utilisateur=:utilisateur';
|
||||||
|
$sql=$pdo->prepare($req);
|
||||||
|
$sql->bindValue(':utilisateur', $utilisateur);
|
||||||
|
$sql->bindValue(':nouveau_prefixe', $nouveau_prefixe);
|
||||||
|
$sql->execute();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de changement de préfixe utilisateur : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -32,7 +32,8 @@ function retourneMessage($type_message,$num_message) {
|
|||||||
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>",
|
||||||
14 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été supprimée avec succès.</div>",
|
14 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été supprimée avec succès.</div>",
|
||||||
15 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vous avez bien été déconnecté.</div>",
|
15 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vous avez bien été déconnecté.</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>"),
|
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>"),
|
||||||
"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>",
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ _HEREDOC_;
|
|||||||
/**
|
/**
|
||||||
* Ajout d'un alias virtuel.
|
* Ajout d'un alias virtuel.
|
||||||
*/
|
*/
|
||||||
$prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo);
|
$prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur']);
|
||||||
if (!empty($prefixe_utilisateur)) {
|
if (!empty($prefixe_utilisateur)) {
|
||||||
echo "<span class=\"input-group-text\">$prefixe_utilisateur</span>";
|
echo "<span class=\"input-group-text\">$prefixe_utilisateur</span>";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
|
||||||
$liste_utilisateurs = listeUtilisateursPostfix($pdo);
|
$liste_utilisateurs = listeUtilisateursPostfix($pdo);
|
||||||
|
$prefixe_utilisateur = retournePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur.
|
* Affiche le formulaire de selection d'un utilisateur si celui connecté possède les privilèges administrateur.
|
||||||
@@ -67,3 +68,20 @@ _HEREDOC_;
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if ($_SESSION['privilege_utilisateur']=="administrateur") {
|
||||||
|
echo <<<_HEREDOC_
|
||||||
|
<h5>Préfixe</h5>
|
||||||
|
<p>Préfixe actuel de {$_SESSION['pseudo_utilisateur']} : {$prefixe_utilisateur}</p>
|
||||||
|
<form action="/services/traitements/utilisateurs/changePrefixeUtilisateur.php" method="post">
|
||||||
|
<input type="text" name="nouveau_prefixe" placeholder="Nouveau prefixe">
|
||||||
|
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
||||||
|
</form>
|
||||||
|
_HEREDOC_;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script src="/fichiers/js/filtre.js"></script>
|
||||||
@@ -10,14 +10,12 @@ session_start();
|
|||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
testPrivileges();
|
testPrivileges();
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php");
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
|
||||||
// Permet le contrôle du domaine renseigné par l'utilisateur
|
// Permet le contrôle du domaine renseigné par l'utilisateur
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
|
||||||
$liste_domaines = listeDomainesPostfix($pdo);
|
$liste_domaines = listeDomainesPostfix($pdo);
|
||||||
|
|
||||||
var_dump($liste_domaines,$_POST);
|
|
||||||
//die();
|
|
||||||
|
|
||||||
if (isset($_POST['nom_alias_virtuel']) && isset($_POST['choix_domaine_alias_virtuel']) && !empty($_POST['nom_alias_virtuel']) && !empty($_POST['choix_domaine_alias_virtuel']) && in_array($_POST['choix_domaine_alias_virtuel'],array_column($liste_domaines,'domaine'))) {
|
if (isset($_POST['nom_alias_virtuel']) && isset($_POST['choix_domaine_alias_virtuel']) && !empty($_POST['nom_alias_virtuel']) && !empty($_POST['choix_domaine_alias_virtuel']) && in_array($_POST['choix_domaine_alias_virtuel'],array_column($liste_domaines,'domaine'))) {
|
||||||
ajoutAliasVirtuelsPostfix($pdo,$_POST['nom_alias_virtuel'],$_POST['choix_domaine_alias_virtuel']);
|
ajoutAliasVirtuelsPostfix($pdo,$_POST['nom_alias_virtuel'],$_POST['choix_domaine_alias_virtuel']);
|
||||||
header ("Location: /pages/gestion/administration.php?page=alias&succes=1");
|
header ("Location: /pages/gestion/administration.php?page=alias&succes=1");
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ testPrivileges();
|
|||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
|
||||||
if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouveau_mot_de_passe']) && !empty($_POST['nouveau_mot_de_passe']) && isset($_POST['confirmation_mot_de_passe']) && !empty($_POST['confirmation_mot_de_passe'])) {
|
if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouveau_mot_de_passe']) && !empty($_POST['nouveau_mot_de_passe']) && isset($_POST['confirmation_mot_de_passe']) && !empty($_POST['confirmation_mot_de_passe'])) {
|
||||||
if (changeMotDePasseUtilisateursPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) {
|
if (changeMotDePasseUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) {
|
||||||
header ("Location: /pages/gestion/administration.php?page=parametres&succes=16");
|
header ("Location: /pages/gestion/administration.php?page=parametres&succes=16");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
@@ -22,8 +22,8 @@ if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouvea
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($_SESSION['privilege_utilisateur']=="utilisateur" && isset($_POST['ancien_mot_de_passe']) && !empty($_POST['ancien_mot_de_passe']) && isset($_POST['nouveau_mot_de_passe']) && !empty($_POST['nouveau_mot_de_passe']) && isset($_POST['confirmation_mot_de_passe']) && !empty($_POST['confirmation_mot_de_passe'])) {
|
elseif ($_SESSION['privilege_utilisateur']=="utilisateur" && isset($_POST['ancien_mot_de_passe']) && !empty($_POST['ancien_mot_de_passe']) && isset($_POST['nouveau_mot_de_passe']) && !empty($_POST['nouveau_mot_de_passe']) && isset($_POST['confirmation_mot_de_passe']) && !empty($_POST['confirmation_mot_de_passe'])) {
|
||||||
if (verificationMotDePasse($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['ancien_mot_de_passe']))) {
|
if (verificationMotDePasseUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['ancien_mot_de_passe']))) {
|
||||||
if (changeMotDePasseUtilisateursPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) {
|
if (changeMotDePasseUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_mot_de_passe']),trim($_POST['confirmation_mot_de_passe']))) {
|
||||||
header ("Location: /pages/gestion/administration.php?page=parametres&succes=16");
|
header ("Location: /pages/gestion/administration.php?page=parametres&succes=16");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page de traitement permettant le changement du préfixe d'un utilisateur.
|
||||||
|
* Elle est appelée par la page de paramètres.
|
||||||
|
* Un champ accessible aux seuls administrateurs permet de changer le préfixe d'un utilisateur (peut être vide).
|
||||||
|
*/
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
testPrivileges();
|
||||||
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
|
||||||
|
|
||||||
|
if ($_SESSION['privilege_utilisateur']=="administrateur" && isset($_POST['nouveau_prefixe'])) {
|
||||||
|
changePrefixeUtilisateurPostfix($pdo,$_SESSION['pseudo_utilisateur'],trim($_POST['nouveau_prefixe']));
|
||||||
|
header ("Location: /pages/gestion/administration.php?page=parametres&succes=17");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header ("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user