You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Courtail/services/fonctions/sessions/privileges.php

44 lines
1.9 KiB

<?php
/**
* 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.
* Elle vérifie le privilège de l'utilisateur connecté et retourne la valeur adéquate.
* Si un visiteur ou un utilisateur ne remplis pas la bonne condition, il est redirigé à la page d'accueil avec un message expllicatif.
* Cette fonction devrait être appelée dans toute page de traitement.
*/
function testPrivileges() {
// 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($infos_utilisateur[0]["active"]) || $infos_utilisateur[0]["active"]!=="1") {
header("Location: /services/traitements/utilisateurs/deconnexion.php?erreur=30");
die();
}
return "administrateur";
}
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";
}
else {
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
die();
}
}
?>