Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 524 → Rev 525

/trunk/jrest/services/Utilisateur.php
45,7 → 45,7
$methode_demande = array_shift($this->ressources);
$methode = $this->traiterNomMethodeGet($methode_demande);
if (method_exists($this, $methode)) {
$infos = $this->$methode();
$infos = $this->$methode($this->ressources[0]);
} else {
$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete GET.";
}
80,9 → 80,10
}
 
/**
* Permet d'obtenir des infos pour un id utilisateur indiqué dans la ressource.
* RESSOURCE : /utilisateur/#id
* PARAMÈTRES : aucun
* Permet d'obtenir des infos pour un ou plusieurs ids utilisateurs indiqué(s) dans la ressource.
* RESSOURCE : /infos-par-ids/#id[,#id]*
* PARAMÈTRES : forceArrayOfArrays - si true, retourne un tableau associatif même s'il n'y a qu'un
* résultat (casse la rétrocompatibilté)
* 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
92,17 → 93,38
* - nom : nom de famille.
* - courriel : courriel
*/
public function getInfosParId($id_utilisateur) {
$infos = $this->getAnnuaire()->obtenirInfosUtilisateurParId($this->idAnnuaire, $id_utilisateur);
public function getInfosParIds($ids_utilisateurs, $forceArrayOfArrays = false) {
$ids_utilisateurs = explode(',', $ids_utilisateurs);
if (count($ids_utilisateurs) == 1) {
// s'il n'y en a qu'un on ne passe pas un array
$ids_utilisateurs = array_shift($ids_utilisateurs);
}
$infos = $this->getAnnuaire()->obtenirInfosUtilisateurParId($this->idAnnuaire, $ids_utilisateurs);
foreach ($infos as $i => $info) {
$infos[$i]['pseudoUtilise'] = $this->obtenirPseudoUtilise($info['id']);
$infos[$i]['pseudo'] = $this->obtenirPseudo($info['id']);
$infos[$i]['intitule'] = $this->formaterIntitule($infos[$i]);
}
 
$infos['pseudoUtilise'] = $this->obtenirPseudoUtilise($id_utilisateur);
$infos['pseudo'] = $this->obtenirPseudo($id_utilisateur);
$infos['intitule'] = $this->formaterIntitule($infos);
// retrocompatibilité
if (count($infos) == 1 && (! $forceArrayOfArrays)) {
$infos = array_shift($infos);
}
 
return $infos;
}
 
/**
* Méthode rétrocompatible : appelle getInfosParIds et s'il n'y a qu'un résultat,
* ne retourne pas un tableau associatif mais un tableau simple
* @return array
*/
public function getInfosParId($ids_utilisateurs) {
return $this->getInfosParIds($ids_utilisateurs, true);
}
 
/**
* 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
/trunk/modeles/AnnuaireModele.php
774,15 → 774,20
}
 
/**
* Renvoie les infos pour un utilisateur et un annuaire donné
* Renvoie les infos pour un ou plusieurs utilisateurs, et un annuaire donné
* @param int $id_annuaire l'identifiant de l'annuaire
* @param array $id identifiant d'utilisateur
* @param mixed $ids_utilisateurs String un identifiant d'utilisateur ou Array un tableau d'identifiants
* @return array un tableau.
*/
public function obtenirInfosUtilisateurParId($id_annuaire, $id_utilisateur) {
public function obtenirInfosUtilisateurParId($id_annuaire, $ids_utilisateurs) {
$plusieurs = false;
if (is_array($ids_utilisateurs)) {
$plusieurs = true;
$ids_utilisateurs = implode(',', $ids_utilisateurs);
}
$requete = 'SELECT * '.
'FROM annu_annuaire '.
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
'WHERE aa_id_annuaire = '.$id_annuaire;
 
$annuaire = $this->requeteUn($requete);
if (!$annuaire) {
789,22 → 794,27
return false;
}
 
$mappageInfos = $this->obtenirChampsMappageAnnuaire($id_annuaire, $id_utilisateur);
$mappageInfos = $this->obtenirChampsMappageAnnuaire($id_annuaire);
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
$mappage = $mappageInfos[0];
$requete = 'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '.
'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
'WHERE '.$mappage['champ_id'].' = '.$id_utilisateur.' ';
$resultat = $this->requeteUn($requete);
'WHERE '.$mappage['champ_id'];
if ($plusieurs) {
$requete .= ' IN (' . $ids_utilisateurs . ')';
} else {
$requete .= ' = ' . $ids_utilisateurs;
}
$resultats = $this->requeteTous($requete);
 
$infos = false;
if ($resultat) {
foreach ($resultats as $resultat) {
$id = $resultat[$mappage['champ_id']];
$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]);
$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]);
$courriel = $resultat[$mappage['champ_mail']];
 
$infos = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom, 'courriel' => $courriel);
$infos[$id] = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom, 'courriel' => $courriel);
}
return $infos;
}
/trunk/controleurs/AppControleur.php
1,4 → 1,4
<?
<?php
/**
* PHP Version 5
*
18,6 → 18,7
* @author aurelien
*
*/
 
abstract class AppControleur extends Controleur {
/**