Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 537 → Rev 538

/trunk/jrest/services/Cel.php
232,12 → 232,22
//+----------------------------------------------------------------------------------------------------------------+
// GESTION DE L'IDENTIFICATION
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 Tela Botanica.";
$message_echec = "Accès limité aux administrateurs du CEL.\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);
return $this->authentifier($message_accueil, $message_echec, 'Admin');
}
public function authentifierUtilisateur() {
246,14 → 256,21
"Inscrivez vous http://www.tela-botanica.org/page:inscription pour le devenir.\n".
"Votre tentative d'identification a échoué.\n".
"Actualiser la page pour essayer à nouveau si vous êtes déjà inscrit ou contacter 'accueil@tela-botanica.org'.";
return $this->authentifier($message_accueil, $message_echec);
return $this->authentifier($message_accueil, $message_echec, 'Utilisateur');
}
private function authentifier($message_accueil, $message_echec) {
if (!isset($_SERVER['PHP_AUTH_USER'])) {
private function authentifier($message_accueil, $message_echec, $type) {
$id = $this->getAuthIdentifiant();
if (!isset($id)) {
$this->envoyerAuth($message_accueil, $message_echec);
} else {
if ($this->etreAdminAutorise($_SERVER['PHP_AUTH_USER']) == false) {
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);
}
}
260,9 → 277,10
return true;
}
public function etreUtilisateurAutorise($identifiant) {
public function etreUtilisateurAutorise() {
$this->initialiserDao('http://www.tela-botanica.org/client/annuaire_nouveau/actuelle/jrest/');
$mdp = md5($_SERVER['PHP_AUTH_PW']);
$identifiant = $this->getAuthIdentifiant();
$mdp = md5($this->getAuthMotDePasse());
$url = $this->getDao()->url_jrest."TestLoginMdp/$identifiant/$mdp";
$json = $this->getDao()->envoyerRequeteConsultation($url);
$existe = json_decode($json);
272,7 → 290,7
}
public function etreAdminAutorise($identifiant) {
$autorisation = ($this->etreUtilisateurAutorise($identifiant) && $this->etreAdminCel($identifiant)) ? true : false;
$autorisation = ($this->etreUtilisateurAutorise() && $this->etreAdminCel($identifiant)) ? true : false;
return $autorisation;
}
/trunk/jrest/services/CelImageDoublon.php
22,41 → 22,50
* Méthode appelée avec une requête de type GET.
*/
public function getElement($params) {
$retour = null;
$parametres = $this->traiterParametres(array('sortie', 'utilisateur'), $params, false);
$parametres = $this->traiterParametres(array('mode', 'utilisateur'), $params, false);
extract($parametres);
 
if (isset($sortie)) {
$methode = $this->traiterNomMethodeGet($sortie);
if (method_exists($this, $methode)) {
$retour = $this->$methode($parametres);
$contenu = '';
if ($this->authentifierUtilisateur()) {
$retour = null;
if (isset($mode)) {
$methode = $this->traiterNomMethodeGet($mode);
if (method_exists($this, $methode)) {
$retour = $this->$methode($parametres);
} else {
$service = get_class($this);
$this->messages[] = "Ce type de mode '$mode' pour le service '$service' n'est pas disponible.";
}
} else {
$this->messages[] = "Ce type de carte '$methode' n'est pas disponible.";
$this->messages[] = "Vous devez indiquer un type de mode.";
}
} else {
$this->messages[] = "Vous devez indiquer un type de sortie.";
}
 
if (is_null($retour)) {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyer($info);
} else {
if ($retour['type'] == 'widget') {
$squelette = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR.$retour['squelette'].'.tpl.html';
$html = $this->traiterSquelettePhp($squelette, $retour['donnees']);
$this->envoyer($html);
} else if ($retour['type'] == 'json') {
$this->envoyer($retour['donnees']);
if (is_null($retour)) {
$contenu = 'Un problème est survenu : '.print_r($this->messages, true);
} else {
if ($retour['type'] == 'widget') {
$squelette = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR.$retour['squelette'].'.tpl.html';
$contenu = $this->traiterSquelettePhp($squelette, $retour['donnees']);
} else if ($retour['type'] == 'json') {
$contenu = $retour['donnees'];
}
}
}
// Envoie sur la sortie standard
$encodage = 'UTF-8';
$mime = 'text/html';
$formatage_json = (isset($retour) && $retour['type'] == 'json') ? true : false;
$this->envoyer($contenu, $mime, $encodage, $formatage_json);
}
 
/**
* Carte par défaut
*/
public function getDoublonHtml($parametres) {
private function getDoublonHtml($parametres) {
$widget = null;
extract($parametres);
$utilisateur = $this->getAuthIdentifiant();
 
// Création des infos du widget
$widget['type'] = 'widget';