<?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();
  }
}

?>