New file |
0,0 → 1,77 |
<?php |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DE L'IDENTIFICATION |
Class ControleUtilisateur extends JRestService { |
|
private function envoyerAuth($message_accueil, $message_echec) { |
header('HTTP/1.0 401 Unauthorized'); |
header('WWW-Authenticate: Basic realm="UTF-8"'); |
header('Content-type: text/plain; charset=UTF-8'); |
print $message_echec; |
exit(0); |
} |
|
protected function getAuthIdentifiant() { |
$id = (isset($_SERVER['PHP_AUTH_USER'])) ? $_SERVER['PHP_AUTH_USER'] : null; |
return $id; |
} |
|
protected function getAuthMotDePasse() { |
$mdp = (isset($_SERVER['PHP_AUTH_PW'])) ? $_SERVER['PHP_AUTH_PW'] : null; |
return $mdp; |
} |
|
public function authentifierAdmin() { |
$message_accueil = "Veuillez vous identifier avec votre compte Observatoire des saisons."; |
$message_echec = "Accès limité aux administrateurs de l'ods.\n". |
"Votre tentative d'identification a échoué.\n". |
"Actualiser la page pour essayer à nouveau si vous êtes bien inscrit comme administrateur."; |
return $this->authentifier($message_accueil, $message_echec, 'Admin'); |
} |
|
private function authentifier($message_accueil, $message_echec, $type) { |
$id = $this->getAuthIdentifiant(); |
if (!isset($id)) { |
$this->envoyerAuth($message_accueil, $message_echec); |
} else { |
$methodeAutorisation = "etre{$type}Autorise"; |
$autorisation = $this->$methodeAutorisation(); |
|
if ($autorisation == false) { |
$this->envoyerAuth($message_accueil, $message_echec); |
} |
} |
return true; |
} |
|
public function etreUtilisateurAutorise() { |
$identifiant = $this->getAuthIdentifiant(); |
$mdp = md5($this->getAuthMotDePasse()); |
|
$requete = 'SELECT COUNT(*) as existe FROM ods_redesign.drupal_users du '. |
'WHERE name = '.$this->proteger($identifiant).' '. |
'AND pass = '.$this->proteger($mdp); |
|
$existe = $this->executerRequete($requete); |
|
$autorisation = (!empty($existe) && $existe['existe'] > 0) ? true :false; |
return $autorisation; |
} |
|
public function etreAdminAutorise() { |
$identifiant = $this->getAuthIdentifiant(); |
$mdp = md5($this->getAuthMotDePasse()); |
|
$requete = 'SELECT COUNT(*) as existe FROM ods_redesign.drupal_users du '. |
'INNER JOIN ods_redesign.drupal_users_roles dur '. |
'ON du.uid = dur.uid '. |
'WHERE name = '.$this->proteger($identifiant).' '. |
'AND pass = '.$this->proteger($mdp).' '. |
'AND rid = 3 '; |
$existe = $this->executerRequete($requete); |
|
$autorisation = (!empty($existe) && $existe[0]['existe'] > 0) ? true :false; |
return $autorisation; |
} |
} |
?> |