Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2200 → Rev 2201

/trunk/jrest/lib/Cel.php
272,15 → 272,11
return $this->authentifier($message_accueil, $message_echec, 'Utilisateur');
}
 
public function isAdmin($id) {
return in_array($id, explode(',', $this->config['jrest_admin']['admin']));
}
 
public function controleUtilisateur($id) {
if (@array_key_exists('name', $_SESSION['user']) && empty($_SESSION['user']['name'])) {
if (@array_key_exists('id_utilisateur', $_SESSION['user']) && empty($_SESSION['user']['id_utilisateur'])) {
//cas de la session temporaire, on ne fait rien de particulier
} else {
if (isset($_SESSION['user']) && isset($_SESSION['user']['name']) && !$this->isAdmin($_SESSION['user']['name']) && $_SESSION['user']['name'] != $id) {
if (isset($_SESSION['user']) && isset($_SESSION['user']['id_utilisateur']) && !$this->etreAdminCelParId($_SESSION['user']['id_utilisateur']) && $_SESSION['user']['id_utilisateur'] != $id) {
// cas d'usurpation d'identité
print 'Accès interdit';
exit();
347,10 → 343,39
$autorisation = ($this->etreUtilisateurAutorise() && $this->etreAdminCel($identifiant)) ? true : false;
return $autorisation;
}
public function etreAdminCelParId($id) {
// si l'utilisateur s'est déjà identifié, alors les infos
// sur le fait qu'il est admin ou non sont déjà disponibles
if(isset($_SESSION['user']) && isset($_SESSION['user']['admin']) && $_SESSION['user']['id_utilisateur'] == $id) {
$admin = $_SESSION['user']['admin'];
} else {
$requete = "SELECT admin FROM cel_utilisateurs_infos WHERE id_utilisateur = ".Cel::db()->proteger($id);
$resultat = Cel::db()->requeter($requete);
$admin = false;
if ($resultat && count($resultat) > 0) {
$admin = ($resultat[0]['admin'] == 1);
}
}
return $admin;
}
 
public function etreAdminCel($courriel) {
// parmi les admins ?
return in_array($courriel, explode(',', $this->config['jrest_admin']['admin']));
// si l'utilisateur s'est déjà identifié, alors les infos
// sur le fait qu'il est admin ou non sont déjà disponibles
if(isset($_SESSION['user']) && isset($_SESSION['user']['admin']) && $_SESSION['user']['courriel'] == $courriel) {
$admin = $_SESSION['user']['admin'];
} else {
$requete = "SELECT admin FROM cel_utilisateurs_infos WHERE courriel_utilisateur = ".Cel::db()->proteger($courriel);
$resultat = Cel::db()->requeter($requete);
$admin = false;
if ($resultat && count($resultat) > 0) {
$admin = ($resultat[0]['admin'] == 1);
}
}
return $admin;
}
 
public function getInfosComplementairesUtilisateur($id_utilisateur) {