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) { |