Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 347 → Rev 348

/trunk/jrest/services/Utilisateur.php
16,9 → 16,12
*/
class Utilisateur extends JRestService {
private $donnees = null;
private $idAnnuaire = null;
private $utilisateurId = null;
private $metadonneeModele = null;
private $annuaireModele = null;
private $messagerieModele = null;
public function getElement($ressources){
$this->ressources = $ressources;
31,7 → 34,7
if (method_exists($this, $methode)) {
$infos = $this->$methode();
} else {
$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible.";
$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete GET.";
}
} else {
$this->messages[] = "Le premier paramêtre du chemin du service doit correspondre au type de ressource demandée.";
45,6 → 48,15
}
}
/**
* 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
* 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
* - nom : nom de famille.
*/
public function getPrenomNomParCourriel() {
$courriels = explode(',', $this->ressources[0]);
$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
51,6 → 63,17
return $infos;
}
/**
* Permet d'obtenir les identités des utilisateurs indiqués dans la ressource.
* RESSOURCE : /utilisateur/identite-par-courriel/[courriel,courriel,...]
* 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
* - pseudo : pseudo de l'utilisateur.
* - prenom : prénom
* - nom : nom de famille.
*/
public function getIdentiteParCourriel() {
$utilisateurs = $this->getPrenomNomParCourriel();
foreach ($utilisateurs as $courriel => $utilisateur) {
106,5 → 129,88
return $intitule;
}
public function updateElement($ressources, $donnees) {
$this->ressources = $ressources;
$this->donnees = $donnees;
$this->idAnnuaire = Config::get('annuaire_defaut');
$infos = null;
if (isset($this->ressources[0])) {
$this->utilisateurId = array_shift($this->ressources);
if (isset($this->ressources[0])) {
$methode_demande = array_shift($this->ressources);
$methode = $this->traiterNomMethodePost($methode_demande);
if (method_exists($this, $methode)) {
$infos = $this->$methode();
} else {
$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete POST.";
}
} else {
$this->messages[] = "La seconde ressource du service pour les requêtes POST doit correspondre au type de ressource demandée.";
}
} else {
$this->messages[] = "La première ressource du service pour les requêtes POST doit être l'identifiant de l'utilisateur.";
}
 
if (!is_null($infos)) {
$this->envoyerJson($infos);
} else {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyerTxt($info);
}
}
/**
* Permet d'envoyer un message à un utilisateur.
* RESSOURCE : /utilisateur/[id]/message
* POST :
* - sujet : contient le sujet du message à envoyer.
* - message : contient le contenu du message à envoyer.
* - utilisateur_courriel : contient le courriel de l'utilisateur qui envoie le message (Il doit être
* inscrit dans l'annuaire par défaut de Tela Botanica).
* - copies : peut contenir une liste de courriels séparés par des virguels auxquels une copie du
* message sera envoyée.
* RÉPONSE :
* - message : contient le message d'information concernant l'envoie.
*/
private function updateMessage() {
$destinataireId = $this->utilisateurId;//$this->donnees['destinataire_id'];
$sujet = stripslashes($this->donnees['sujet']);
$contenu = stripslashes($this->donnees['message']);
$envoyeur = $this->donnees['utilisateur_courriel'];
$copies = array_key_exists('copies', $this->donnees) ? explode(',', $this->donnees['copies']) : null;
$info = null;
if ($this->getAnnuaire()->utilisateurExisteParMail($this->idAnnuaire, $envoyeur)) {
$destinataire = $this->getAnnuaire()->obtenirMailParId($this->idAnnuaire, $destinataireId);
if ($destinataire) {
$envoie = $this->getMessagerie()->envoyerMailText($envoyeur, $destinataire, $sujet, $contenu);
if ($envoie) {
$info['message'] = "Votre message a bien été envoyé.";
foreach ($copies as $copie) {
$sujet = '[COPIE] '.$sujet;
$contenu = "Message original envoyé par $envoyeur pour $destinataire.\n--\n".$contenu;
$this->getMessagerie()->envoyerMailText($envoyeur, $copie, $sujet, $contenu);
}
} else {
$info['message'] = "Le message n'a pas pu être envoyé.";
}
} else {
$info['message'] = "Aucun courriel ne correspond à l'id du destinataire.";
}
} else {
$info['message'] = "Vous n'êtes pas inscrit à Tela Botanica avec le courriel : $envoyeur.\n".
"Veuillez saisir votre courriel d'inscription où vous inscrire à Tela Botanica.";
}
return $info;
}
private function getMessagerie() {
if (!isset($this->messagerieModele)) {
$this->messagerieModele = new MessageControleur();
}
return $this->messagerieModele;
}
}
?>