Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 518 → Rev 519

/trunk/jrest/services/Utilisateur.php
23,6 → 23,10
private $annuaireModele = null;
private $messagerieModele = null;
 
const FORMAT_JSON = "json";
const FORMAT_XML = "xml";
const FORMAT_LDEHYDE = "méthanal"; // hihi hoho
 
/*+----------------------------------------------------------------------------------------------------+*/
// GET : consultation
 
47,11 → 51,28
}
}
} else {
$this->messages[] = "Le premier paramêtre du chemin du service doit correspondre au type de ressource demandée.";
$this->messages[] = "Le premier paramètre du chemin du service doit correspondre au type de ressource demandée.";
}
 
// possibilité d'envoyer en plusieurs formats @TODO faire ça plus proprement
$format = self::FORMAT_JSON;
$dernierIndex = count($this->ressources) - 1;
if ($dernierIndex >= 0) {
$dernierParametre = $this->ressources[$dernierIndex];
if (in_array($dernierParametre, array(self::FORMAT_JSON, self::FORMAT_XML))) {
$format = $dernierParametre;
}
}
 
if (!is_null($infos)) {
$this->envoyerJson($infos);
switch ($format) {
case self::FORMAT_XML :
$this->envoyerXml($infos);
break;
case self::FORMAT_JSON :
default :
$this->envoyerJson($infos);
}
} else {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyerTxt($info);
62,7 → 83,7
/**
* Permet d'obtenir des infos pour un id utilisateur indiqué dans la ressource.
* RESSOURCE : /utilisateur/#id
* PARAMÊTRES : aucun
* PARAMÈTRES : aucun
* RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
* - id : identifiant numérique de l'utilisateur
* - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
85,7 → 106,7
/**
* Permet d'obtenir les prénoms et noms des courriels des utilisateurs indiqués dans la ressource.
* RESSOURCE : /utilisateur/prenom-nom-par-courriel/[courriel,courriel,...]
* PARAMÊTRES : aucun
* PARAMÈTRES : aucun
* RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
* - id : identifiant numérique de l'utilisateur
* - prenom : prénom
94,11 → 115,6
public function getPrenomNomParCourriel() {
$courriels = explode(',', $this->ressources[0]);
$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
$infous_courriel_minuscule = array();
foreach ($infos as $courriel => $utilisateur) {
$courriel = strtolower($courriel);
$infous_courriel_minuscule[$courriel] = $utilisateur;
}
return $infos;
}
 
105,7 → 121,7
/**
* Permet d'obtenir les identités des utilisateurs indiqués dans la ressource.
* RESSOURCE : /utilisateur/identite-par-courriel/[courriel,courriel,...]
* PARAMÊTRES : aucun
* PARAMÈTRES : aucun
* RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
* - id : identifiant numérique de l'utilisateur
* - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
127,6 → 143,46
return $infos_utilisateurs;
}
 
/**
* Même principe que getIdentiteParCourriel() mais pour un seul courriel, et renvoie plus d'infos :
* RESSOURCE : /utilisateur/identite-complete-par-courriel/courriel[/format]
* PARAMÈTRES : format : "json" (par défaut) ou "xml" (pour
* rétrocompatibilité avec le service eFlore_chatin/annuaire_tela/xxx/courriel)
* RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
* - id : identifiant numérique de l'utilisateur
* - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
* - pseudo : pseudo de l'utilisateur.
* - prenom : prénom
* - nom : nom de famille.
* - mot_de_passe : le mot de passe haché (15% de matières grasses, peut contenir des traces de soja)
* - fonction
* - titre
* - site_web
* - adresse01
* - adresse02
* - code_postal
* - ville
* - departement
* - region
* - pays
* - date_inscription
*/
public function getIdentiteCompleteParCourriel() {
$infos_utilisateurs = array();
$courriel = $this->ressources[0];
$utilisateur = $this->getAnnuaire()->obtenirMaximumInfosParCourriel($this->idAnnuaire, $courriel);
 
$id = $utilisateur['id'];
$utilisateur['pseudo'] = $this->obtenirPseudo($id);
$utilisateur['pseudoUtilise'] = $this->obtenirPseudoUtilise($id);
$utilisateur['intitule'] = $this->formaterIntitule($utilisateur);
 
// ouksépabo
$this->baliseMaitresse = "personne";
 
return $utilisateur;
}
 
private function getAnnuaire() {
if (!isset($this->annuaireModele)) {
$this->annuaireModele = new AnnuaireModele();
/trunk/jrest/bibliotheque/JRestService.php
24,6 → 24,9
protected $start = 0;
protected $limit = 150;
 
/** pour l'envoi de XML : éventuelle balise dans laquelle placer tout le contenu */
protected $baliseMaitresse;
 
public function __construct($config, $demarrer_session = true) {
// Tableau contenant la config de Jrest
$this->config = $config;
61,6 → 64,39
$this->envoyer($contenu, 'application/json', $encodage, false);
}
 
/** à l'arrache pour rétrocompatibilité avec le service "annuaire_tela" de eFlore_chatin */
protected function envoyerXml($donnees, $encodage = 'utf-8') {
$xml = '<?xml version="1.0" encoding="' . strtoupper($encodage) . '"?>';
if ($this->baliseMaitresse) {
$xml .= '<' . $this->baliseMaitresse . '>';
}
$xml .= $this->genererXmlAPartirDeTableau($donnees);
if ($this->baliseMaitresse) {
$xml .= '</' . $this->baliseMaitresse . '>';
}
$this->envoyer($xml, 'application/xml', $encodage, false);
}
 
/**
* Génère un XML minimaliste à partir d'un tableau associatif
* Note : gère mal les indices numériques
* @TODO utiliser une vraie lib
*/
protected function genererXmlAPartirDeTableau($tableau) {
$xml = '';
foreach ($tableau as $balise => $donnee) {
$xml .= '<' . $balise . '>';
if (is_array($donnee)) {
// récurer, balayer, que ce soit toujours pimpant
$xml .= $this->genererXmlAPartirDeTableau($donnee);
} else {
$xml .= $donnee;
}
$xml .= '</' . $balise . '>';
}
return $xml;
}
 
protected function envoyerJsonVar($variable, $donnees = null, $encodage = 'utf-8') {
$contenu = "var $variable = ".json_encode($donnees);
$this->envoyer($contenu, 'text/html', $encodage, false);