<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php 

// Ce fichier contient les fonctions utilitaires destin&eacute;es &agrave; effectuer la v&eacute;rification des droits d'acc&egrave;s.

/************************************************************************
 * verifierSession
 *
 * T�che: V&eacute;rifier si l'utilisateur est autoris&eacute; &agrave; acc&eacute;der &agrave;
 *        cette page selon le num&eacute;ro de la session actuelle.
 *        Techniquement, v&eacute;rifier si l'utilisateur a entr&eacute; son
 *        nom d'usager et mot de passe afin d'acc&eacute;der au site.
 *
 * Entr&eacute;es: session_id: Num&eacute;ro de la session &agrave; valider.
 *
 ***********************************************************************/



function verifierSession($Bsession_id)
{
	//Connecter au serveur mysql
  $link = @($GLOBALS["___mysqli_ston"] = mysqli_connect("localhost",  "scoutsducanada_scoutsmmbase",  "26Iordplm", 'scoutsducanada_scoutsmmbase' )) 
       or die("ne peut se connecter au serveur"); 
  ((bool)mysqli_set_charset($link, "utf8"));
	
	//Selectionner la base de donn&eacute;e sur le serveur
  /* mysqli_select_db($GLOBALS["___mysqli_ston"], scoutsducanada_scoutsmmbase)
       or die("ne peut se connecter a la base de donnees"); */

	//Formuler la requ&ecirc;te
	$sql = "SELECT *
            FROM usager 
            WHERE Bidsession ='$Bsession_id'";
			
	//Ex&eacute;cute la requ&ecirc;te et mettre les r&eacute;sultats dans $result
	$result = mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die ("Ne peut lire dans la table usager");
	
	//Obtenir le nombre d'enregistrement. 0 si invalide, 1 si valide.
	$num = mysqli_num_rows($result);

	//Fait le m&eacute;nage des r&eacute;sultat en m&eacute;moire
	((mysqli_free_result($result) || (is_object($result) && (get_class($result) == "mysqli_result"))) ? true : false);
	
	//V&eacute;rifie si le num&eacute;ro de session est valide
	if ($num != "1")
	{
		die("<font size=4><b>Vous ne pouvez consulter cette page car vous n'y &ecirc;tes pas autoris&eacute; ! bidsession=".$Bsession_id."</b></font>");
	}
}

/************************************************************************
 * lirePrivilege
 *
 * T�che: Lire le niveau de privil&egrave;ges de l'utilisateur afin
 *        de d&eacute;terminer diff&eacute;rents acc&egrave;s aux divers &eacute;l&eacute;ments
 *        du site.
 *
 * Entr&eacute;es: session_id: Num&eacute;ro de la session.
 *
 ***********************************************************************/

function lirePrivilege($Bsession_id)
{
	//Lire les privil&egrave;ges de l'utilisateur courant.
	$sql = "SELECT usager.gestion_bases
            FROM usager
            WHERE usager.Bidsession ='$Bsession_id'";
			
	//Faire la requ&ecirc;te et r&eacute;cup&eacute;rer les donn&eacute;es.
    $result = mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die ("Ne peut lire dans la table usager !");
	
	//Lire le nombre d'enregistrements r&eacute;cup&eacute;r&eacute;s.
    $num = mysqli_num_rows($result);

	//V&eacute;rifier si les donn&eacute;es son coh&eacute;rentes.
    if ($num != "1")
    {
    	die("Il y a un probl&egrave;me dans la table !1");
    }
    else
    {
		//Lire les privil&egrave;ges.
    	$row = mysqli_fetch_row($result);
    	$privilege = $row[0];
    }	
    
    //Lib&eacute;rer la m&eacute;moire des r&eacute;sultats.
	((mysqli_free_result($result) || (is_object($result) && (get_class($result) == "mysqli_result"))) ? true : false);
	
	//Retourner les privil&egrave;ges.
	return $privilege;
}

/************************************************************************
 * canUseColor
 *
 * T�che: D&eacute;terminer si le niveau d'utilisateur lui permet d'avoir
 *        acc&egrave;s aux couleurs personnalis&eacute;es.
 *
 * Entr&eacute;es: session_id: Num&eacute;ro de la session courante.
 *
 ***********************************************************************/

function canUseColor($Bsession_id)
{
	return (lirePrivilege($Bsession_id) > 1);

	//***DEBUG
	//return true;
}

function lireDroitsChamp($champ, $Bsession_id)
{
	$sql = "SELECT $champ
    	    FROM usager
	        WHERE Bidsession ='$Bsession_id'";

	$result = mysqli_query($GLOBALS["___mysqli_ston"], $sql);

	$num = mysqli_num_rows($result);

	if ($num != "1")
		die("Il y a un probl&egrave;me dans la table !2");

	$row = mysqli_fetch_row($result);

	((mysqli_free_result($result) || (is_object($result) && (get_class($result) == "mysqli_result"))) ? true : false);

	return ($row[0] == 'O');
}

function lireFormation($Bsession_id)
{
	return lireDroitsChamp("formation", $Bsession_id);
}

function lireCompetence($Bsession_id)
{
	return lireDroitsChamp("competence", $Bsession_id);
}

function lireDecoration($Bsession_id)
{
	return lireDroitsChamp("decoration", $Bsession_id);
}

function lireAucunDroit($Bsession_id)
{
	$sql = "SELECT privilege, formation, competence, decoration
    	    FROM usager
	        WHERE Bidsession ='$Bsession_id'";

	$result = mysqli_query($GLOBALS["___mysqli_ston"], $sql);

	$num = mysqli_num_rows($result);

	if ($num != "1")
		die("Il y a un probl&egrave;me dans la table !3");

	$row = mysqli_fetch_row($result);

	((mysqli_free_result($result) || (is_object($result) && (get_class($result) == "mysqli_result"))) ? true : false);

	return ( ($row[0] != 4) && ($row[1] != 'O') && ($row[2] != 'O') && ($row[3] != 'O') );
}

?>
