Subversion Repositories Applications.annuaire

Rev

Rev 345 | Rev 352 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 345 Rev 348
Line 14... Line 14...
14
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
14
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
15
 * @version		$Id$
15
 * @version		$Id$
16
 */
16
 */
17
class Utilisateur extends JRestService {
17
class Utilisateur extends JRestService {
Line -... Line 18...
-
 
18
	
18
	
19
	private $donnees = null;
-
 
20
	private $idAnnuaire = null;
19
	private $idAnnuaire = null;
21
	private $utilisateurId = null;
20
	private $metadonneeModele = null;
22
	private $metadonneeModele = null;
-
 
23
	private $annuaireModele = null;
Line 21... Line 24...
21
	private $annuaireModele = null;
24
	private $messagerieModele = null;
22
	
25
	
23
	public function getElement($ressources){
26
	public function getElement($ressources){
24
		$this->ressources = $ressources;
27
		$this->ressources = $ressources;
Line 29... Line 32...
29
			$methode_demande = array_shift($this->ressources);
32
			$methode_demande = array_shift($this->ressources);
30
			$methode = $this->traiterNomMethodeGet($methode_demande);
33
			$methode = $this->traiterNomMethodeGet($methode_demande);
31
			if (method_exists($this, $methode)) {
34
			if (method_exists($this, $methode)) {
32
				$infos = $this->$methode();
35
				$infos = $this->$methode();
33
			} else {
36
			} else {
34
				$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible.";
37
				$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete GET.";
35
			}
38
			}
36
		} else {
39
		} else {
37
			$this->messages[] = "Le premier paramêtre du chemin du service doit correspondre au type de ressource demandée.";
40
			$this->messages[] = "Le premier paramêtre du chemin du service doit correspondre au type de ressource demandée.";
38
		}
41
		}
Line 43... Line 46...
43
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
46
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
44
			$this->envoyerTxt($info);
47
			$this->envoyerTxt($info);
45
		}
48
		}
46
	}
49
	}
Line -... Line 50...
-
 
50
	
-
 
51
	/**
-
 
52
	 * Permet d'obtenir les prénoms et noms des courriels des utilisateurs indiqués dans la ressource.
-
 
53
	 * RESSOURCE : /utilisateur/prenom-nom-par-courriel/[courriel,courriel,...]
-
 
54
	 * PARAMÊTRES : aucun 
-
 
55
	 * RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
-
 
56
	 *  - id : identifiant numérique de l'utilisateur
-
 
57
	 *  - prenom : prénom
-
 
58
	 *  - nom : nom de famille.
47
	
59
	 */
48
	public function getPrenomNomParCourriel() {
60
	public function getPrenomNomParCourriel() {
49
		$courriels = explode(',', $this->ressources[0]);
61
		$courriels = explode(',', $this->ressources[0]);
50
		$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
62
		$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
51
		return $infos;
63
		return $infos;
Line -... Line 64...
-
 
64
	}
-
 
65
	
-
 
66
	/**
-
 
67
	 * Permet d'obtenir les identités des utilisateurs indiqués dans la ressource.
-
 
68
	 * RESSOURCE : /utilisateur/identite-par-courriel/[courriel,courriel,...]
-
 
69
	 * PARAMÊTRES : aucun 
-
 
70
	 * RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
-
 
71
	 *  - id : identifiant numérique de l'utilisateur
-
 
72
	 *  - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
-
 
73
	 *  - pseudo : pseudo de l'utilisateur.
-
 
74
	 *  - prenom : prénom
52
	}
75
	 *  - nom : nom de famille.
53
	
76
	 */
54
	public function getIdentiteParCourriel() {
77
	public function getIdentiteParCourriel() {
55
	    $utilisateurs = $this->getPrenomNomParCourriel();
78
	    $utilisateurs = $this->getPrenomNomParCourriel();
56
		foreach ($utilisateurs as $courriel => $utilisateur) {
79
		foreach ($utilisateurs as $courriel => $utilisateur) {
Line 104... Line 127...
104
			$intitule = $utilisateur['prenom'].' '.$utilisateur['nom'];
127
			$intitule = $utilisateur['prenom'].' '.$utilisateur['nom'];
105
		}
128
		}
106
		return $intitule;
129
		return $intitule;
107
	}
130
	}
Line -... Line 131...
-
 
131
	
-
 
132
	public function updateElement($ressources, $donnees) {
-
 
133
		$this->ressources = $ressources;
-
 
134
		$this->donnees = $donnees;
-
 
135
		$this->idAnnuaire = Config::get('annuaire_defaut');
-
 
136
		
-
 
137
		$infos = null;
-
 
138
		if (isset($this->ressources[0])) {
-
 
139
			$this->utilisateurId = array_shift($this->ressources);
-
 
140
			if (isset($this->ressources[0])) {
-
 
141
				$methode_demande = array_shift($this->ressources);
-
 
142
				$methode = $this->traiterNomMethodePost($methode_demande);
-
 
143
				if (method_exists($this, $methode)) {
-
 
144
					$infos = $this->$methode();
-
 
145
				} else {
-
 
146
					$this->messages[] = "Ce type de ressource '$methode_demande' n'est pas disponible pour la requete POST.";
-
 
147
				}
-
 
148
			} else {
-
 
149
				$this->messages[] = "La seconde ressource du service pour les requêtes POST doit correspondre au type de ressource demandée.";
-
 
150
			}
-
 
151
		} else {
-
 
152
			$this->messages[] = "La première ressource du service pour les requêtes POST doit être l'identifiant de l'utilisateur.";
-
 
153
		}
-
 
154
 
-
 
155
		if (!is_null($infos)) {
-
 
156
			$this->envoyerJson($infos);
-
 
157
		} else {
-
 
158
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
-
 
159
			$this->envoyerTxt($info);
-
 
160
		}
-
 
161
	}
-
 
162
	
-
 
163
	/**
-
 
164
	 * Permet d'envoyer un message à un utilisateur.
-
 
165
	 * RESSOURCE : /utilisateur/[id]/message
-
 
166
	 * POST : 
-
 
167
	 *  - sujet : contient le sujet du message à envoyer.
-
 
168
	 *  - message : contient le contenu du message à envoyer.
-
 
169
	 *  - utilisateur_courriel : contient le courriel de l'utilisateur qui envoie le message (Il doit être
-
 
170
	 *  inscrit dans l'annuaire par défaut de Tela Botanica).
-
 
171
	 *  - copies : peut contenir une liste de courriels séparés par des virguels auxquels une copie du
-
 
172
	 *  message sera envoyée. 
-
 
173
	 * RÉPONSE :
-
 
174
	 *  - message : contient le message d'information concernant l'envoie.
-
 
175
	 */
-
 
176
	private function updateMessage() {
-
 
177
		$destinataireId = $this->utilisateurId;//$this->donnees['destinataire_id'];
-
 
178
		$sujet = stripslashes($this->donnees['sujet']);
-
 
179
		$contenu = stripslashes($this->donnees['message']);
-
 
180
		$envoyeur = $this->donnees['utilisateur_courriel'];
-
 
181
		$copies = array_key_exists('copies', $this->donnees) ? explode(',', $this->donnees['copies']) : null;
-
 
182
		
-
 
183
		$info = null;
-
 
184
		if ($this->getAnnuaire()->utilisateurExisteParMail($this->idAnnuaire, $envoyeur)) {
-
 
185
			$destinataire = $this->getAnnuaire()->obtenirMailParId($this->idAnnuaire, $destinataireId);
-
 
186
			if ($destinataire) {
-
 
187
				$envoie = $this->getMessagerie()->envoyerMailText($envoyeur, $destinataire, $sujet, $contenu);
-
 
188
				if ($envoie) {
-
 
189
					$info['message'] = "Votre message a bien été envoyé.";
-
 
190
					foreach ($copies as $copie) {
-
 
191
						$sujet = '[COPIE] '.$sujet;
-
 
192
						$contenu = "Message original envoyé par $envoyeur pour $destinataire.\n--\n".$contenu;
-
 
193
						$this->getMessagerie()->envoyerMailText($envoyeur, $copie, $sujet, $contenu);
-
 
194
					}
-
 
195
				} else {
-
 
196
					$info['message'] = "Le message n'a pas pu être envoyé.";
-
 
197
				}
-
 
198
			} else {
-
 
199
				$info['message'] = "Aucun courriel ne correspond à l'id du destinataire.";
-
 
200
			}
-
 
201
		} else {
-
 
202
			$info['message'] = "Vous n'êtes pas inscrit à Tela Botanica avec le courriel : $envoyeur.\n".
-
 
203
				"Veuillez saisir votre courriel d'inscription où vous inscrire à Tela Botanica.";
-
 
204
		}
-
 
205
		return $info;
-
 
206
	}
-
 
207
	
-
 
208
	private function getMessagerie() {
-
 
209
		if (!isset($this->messagerieModele)) {
-
 
210
			$this->messagerieModele = new MessageControleur();
-
 
211
		}
-
 
212
		return $this->messagerieModele;
-
 
213
	}
108
	
214
	
109
}
215
}
110
?>
216
?>