Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1868 → Rev 1869

/trunk/jrest/lib/Cel.php
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;
}
}
 
?>