121,10 → 121,7 |
|
protected function verifierSecuriteParametreUrl($param) { |
//$verifier = array('NULL', "\n", "\r", "\\", "'", '"', "\x00", "\x1a", ';'); |
if (!is_string($param)) return $param; |
|
$param = strip_tags($param); |
return $param; |
return is_string($param) ? strip_tags($param) : $param; |
} |
|
private function definirParametresUrlParDefaut() { |
219,12 → 216,12 |
print $contenu; |
} |
|
private function envoyerAuth($message_accueil, $message_echec) { |
static function envoyerAuth($message_accueil, $message_echec) { |
header('HTTP/1.0 401 Unauthorized'); |
header('WWW-Authenticate: Basic realm="'.mb_convert_encoding($message_accueil, 'ISO-8859-1', 'UTF-8').'"'); |
header('Content-type: text/plain; charset=UTF-8'); |
print $message_echec; |
exit(0); |
exit; |
} |
|
//+----------------------------------------------------------------------------------------------------------------+ |
240,14 → 237,12 |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DE L'IDENTIFICATION |
|
protected function getAuthIdentifiant() { |
$id = (isset($_SERVER['PHP_AUTH_USER'])) ? $_SERVER['PHP_AUTH_USER'] : null; |
return $id; |
static function getAuthIdentifiant() { |
return isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : null; |
} |
|
protected function getAuthMotDePasse() { |
$mdp = (isset($_SERVER['PHP_AUTH_PW'])) ? $_SERVER['PHP_AUTH_PW'] : null; |
return $mdp; |
static function getAuthMotDePasse() { |
return isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : null; |
} |
|
public function authentifierAdmin() { |
268,19 → 263,11 |
} |
|
public function isAdmin($id) { |
$admins = $this->config['jrest_admin']['admin']; |
$admin_tab = explode(',',$admins); |
|
if (in_array($id,$admin_tab)) { |
return true; |
} else { |
return false; |
} |
return in_array($id, explode(',', $this->config['jrest_admin']['admin'])); |
} |
|
public function controleUtilisateur($id) { |
|
if (isset($_SESSION['user']) && isset($_SESSION['user']['name']) && $_SESSION['user']['name'] == '') { |
if (@array_key_exists('name', $_SESSION['user']) && empty($_SESSION['user']['name'])) { |
//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) { |
292,12 → 279,10 |
} |
|
public function controleAppelIpAutorisee() { |
$ips_autorisees = explode(',', $this->config['jrest_admin']['ip_autorisees']); |
$ip_appelante = $_SERVER['REMOTE_ADDR']; |
if(!in_array($ip_appelante, $ips_autorisees) && $ip_appelante != $_SERVER['SERVER_ADDR']) { |
$ips_autorisees = explode(',', @$this->config['jrest_admin']['ip_autorisees']); |
if(!in_array($_SERVER['REMOTE_ADDR'], $ips_autorisees) && $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR']) { |
header('HTTP/1.0 401 Unauthorized'); |
echo 'Accès interdit'; |
exit(0); |
exit('Accès interdit'); |
} |
return true; |
} |
315,26 → 300,26 |
} |
|
private function authentifier($message_accueil, $message_echec, $type) { |
$id = $this->getAuthIdentifiant(); |
if (!isset($id)) { |
$this->envoyerAuth($message_accueil, $message_echec); |
if (!isset($_SERVER['PHP_AUTH_USER'])) { |
self::envoyerAuth($message_accueil, $message_echec); // exit |
} |
|
if ($type == 'Utilisateur' && self::getAuthMotDePasse() == 'debug') { |
$autorisation = true; |
} else { |
if ($type == 'Utilisateur' && $this->getAuthMotDePasse() == 'debug') { |
$autorisation = true; |
} else { |
$methodeAutorisation = "etre{$type}Autorise"; |
$autorisation = $this->$methodeAutorisation(); |
} |
if ($autorisation == false) { |
$this->envoyerAuth($message_accueil, $message_echec); |
} |
$methodeAutorisation = "etre{$type}Autorise"; |
$autorisation = $this->$methodeAutorisation(); |
} |
if ($autorisation == false) { |
self::envoyerAuth($message_accueil, $message_echec); |
} |
|
return true; |
} |
|
public function etreUtilisateurAutorise() { |
$identifiant = $this->getAuthIdentifiant(); |
$mdp = md5($this->getAuthMotDePasse()); |
$identifiant = self::getAuthIdentifiant(); |
$mdp = md5(self::getAuthMotDePasse()); |
$service = "TestLoginMdp/$identifiant/$mdp"; |
$url = sprintf($this->config['settings']['baseURLServicesAnnuaireTpl'], $service); |
$json = $this->getRestClient()->consulter($url); |
345,17 → 330,14 |
} |
|
public function etreAdminAutorise() { |
$identifiant = $this->getAuthIdentifiant(); |
$identifiant = self::getAuthIdentifiant(); |
$autorisation = ($this->etreUtilisateurAutorise() && $this->etreAdminCel($identifiant)) ? true : false; |
return $autorisation; |
} |
|
public function etreAdminCel($courriel) { |
$admins = $this->config['jrest_admin']['admin']; |
$courriels_autorises = explode(',', $admins); |
|
$autorisation = (in_array($courriel, $courriels_autorises)) ? true : false ; |
return $autorisation; |
// parmi les admins ? |
return in_array($courriel, explode(',', $this->config['jrest_admin']['admin'])); |
} |
|
public function getInfosComplementairesUtilisateur($id_utilisateur) { |
456,8 → 438,7 |
} |
|
protected function tronquerCourriel($courriel) { |
$courriel = preg_replace('/[^@]+$/i', '...', $courriel); |
return $courriel; |
return preg_replace('/[^@]+$/i', '...', $courriel); |
} |
|
protected function nettoyerTableau(Array $tableau) { |
718,5 → 699,3 |
return $contenu; |
} |
} |
|
?> |