Subversion Repositories Applications.annuaire

Rev

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

Rev 388 Rev 391
Line 13... Line 13...
13
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
13
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
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 {
18
	
18
 
19
	private $donnees = null;
19
	private $donnees = null;
20
	private $idAnnuaire = null;
20
	private $idAnnuaire = null;
21
	private $utilisateurId = null;
21
	private $utilisateurId = null;
22
	private $metadonneeModele = null;
22
	private $metadonneeModele = null;
23
	private $annuaireModele = null;
23
	private $annuaireModele = null;
24
	private $messagerieModele = null;
24
	private $messagerieModele = null;
25
	
25
 
26
	public function getElement($ressources){
26
	public function getElement($ressources){
27
		$this->ressources = $ressources;
27
		$this->ressources = $ressources;
28
		$this->idAnnuaire = Config::get('annuaire_defaut');
28
		$this->idAnnuaire = Config::get('annuaire_defaut');
29
		$infos = null;
29
		$infos = null;
30
		
30
 
31
		if (isset($this->ressources[0])) {
31
		if (isset($this->ressources[0])) {
32
			$methode_demande = array_shift($this->ressources);
32
			$methode_demande = array_shift($this->ressources);
33
			$methode = $this->traiterNomMethodeGet($methode_demande);
33
			$methode = $this->traiterNomMethodeGet($methode_demande);
34
			if (method_exists($this, $methode)) {
34
			if (method_exists($this, $methode)) {
35
				$infos = $this->$methode();
35
				$infos = $this->$methode();
Line 45... Line 45...
45
		} else {
45
		} else {
46
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
46
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
47
			$this->envoyerTxt($info);
47
			$this->envoyerTxt($info);
48
		}
48
		}
49
	}
49
	}
50
	
50
 
51
	/**
51
	/**
52
	 * Permet d'obtenir les prénoms et noms des courriels des utilisateurs indiqués dans la ressource.
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,...]
53
	 * RESSOURCE : /utilisateur/prenom-nom-par-courriel/[courriel,courriel,...]
54
	 * PARAMÊTRES : aucun 
54
	 * PARAMÊTRES : aucun
55
	 * RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
55
	 * RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
56
	 *  - id : identifiant numérique de l'utilisateur
56
	 *  - id : identifiant numérique de l'utilisateur
57
	 *  - prenom : prénom
57
	 *  - prenom : prénom
58
	 *  - nom : nom de famille.
58
	 *  - nom : nom de famille.
59
	 */
59
	 */
60
	public function getPrenomNomParCourriel() {
60
	public function getPrenomNomParCourriel() {
61
		$courriels = explode(',', $this->ressources[0]);
61
		$courriels = explode(',', $this->ressources[0]);
62
		$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
62
		$infos = $this->getAnnuaire()->obtenirPrenomNomParCourriel($this->idAnnuaire, $courriels);
63
		return $infos;
63
		return $infos;
64
	}
64
	}
65
	
65
 
66
	/**
66
	/**
67
	 * Permet d'obtenir les identités des utilisateurs indiqués dans la ressource.
67
	 * Permet d'obtenir les identités des utilisateurs indiqués dans la ressource.
68
	 * RESSOURCE : /utilisateur/identite-par-courriel/[courriel,courriel,...]
68
	 * RESSOURCE : /utilisateur/identite-par-courriel/[courriel,courriel,...]
69
	 * PARAMÊTRES : aucun 
69
	 * PARAMÊTRES : aucun
70
	 * RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
70
	 * RÉPONSE : Tableau possédant un courriel de la ressource en clé et en valeur :
71
	 *  - id : identifiant numérique de l'utilisateur
71
	 *  - id : identifiant numérique de l'utilisateur
72
	 *  - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
72
	 *  - pseudoUtilise : indique si on doit utiliser le pseudo à la place de Prénom NOM
73
	 *  - pseudo : pseudo de l'utilisateur.
73
	 *  - pseudo : pseudo de l'utilisateur.
74
	 *  - prenom : prénom
74
	 *  - prenom : prénom
Line 84... Line 84...
84
			$utilisateur['intitule'] = $this->formaterIntitule($utilisateur);
84
			$utilisateur['intitule'] = $this->formaterIntitule($utilisateur);
85
			$infos_utilisateurs[strtolower($courriel)] = $utilisateur;
85
			$infos_utilisateurs[strtolower($courriel)] = $utilisateur;
86
		}
86
		}
87
		return $infos_utilisateurs;
87
		return $infos_utilisateurs;
88
	}
88
	}
89
	
89
 
90
	private function getAnnuaire() {
90
	private function getAnnuaire() {
91
		if (!isset($this->annuaireModele)) {
91
		if (!isset($this->annuaireModele)) {
92
			$this->annuaireModele = new AnnuaireModele();
92
			$this->annuaireModele = new AnnuaireModele();
93
		}
93
		}
94
		return $this->annuaireModele;
94
		return $this->annuaireModele;
95
	}
95
	}
96
	
96
 
97
	private function getMeta() {
97
	private function getMeta() {
98
		if (!isset($this->metadonneeModele)) {
98
		if (!isset($this->metadonneeModele)) {
99
			$this->metadonneeModele = new MetadonneeModele();
99
			$this->metadonneeModele = new MetadonneeModele();
100
		}
100
		}
101
		return $this->metadonneeModele;
101
		return $this->metadonneeModele;
102
	}
102
	}
103
	
103
 
104
	private function obtenirPseudo($id_utilisateur) {
104
	private function obtenirPseudo($id_utilisateur) {
105
		$pseudo = '';
105
		$pseudo = '';
106
		$id_champ_pseudo = $this->getMeta()->renvoyerIdChampMetadonneeParAbreviation($this->idAnnuaire, 'pseudo');
106
		$id_champ_pseudo = $this->getMeta()->renvoyerIdChampMetadonneeParAbreviation($this->idAnnuaire, 'pseudo');
107
		if ($this->getMeta()->valeurExiste($id_champ_pseudo, $id_utilisateur)) {
107
		if ($this->getMeta()->valeurExiste($id_champ_pseudo, $id_utilisateur)) {
108
			$pseudo = $this->getMeta()->obtenirValeurMetadonnee($id_champ_pseudo, $id_utilisateur);
108
			$pseudo = $this->getMeta()->obtenirValeurMetadonnee($id_champ_pseudo, $id_utilisateur);
109
		}
109
		}
110
		return $pseudo;
110
		return $pseudo;
111
	}
111
	}
112
	
112
 
113
	private function obtenirPseudoUtilise($id_utilisateur) {
113
	private function obtenirPseudoUtilise($id_utilisateur) {
114
		$pseudo_utilise = false;
114
		$pseudo_utilise = false;
115
		$id_champ_utilise_pseudo = $this->getMeta()->renvoyerIdChampMetadonneeParAbreviation($this->idAnnuaire, 'utilise_pseudo');
115
		$id_champ_utilise_pseudo = $this->getMeta()->renvoyerIdChampMetadonneeParAbreviation($this->idAnnuaire, 'utilise_pseudo');
116
		if ($this->getMeta()->valeurExiste($id_champ_utilise_pseudo, $id_utilisateur)) {
116
		if ($this->getMeta()->valeurExiste($id_champ_utilise_pseudo, $id_utilisateur)) {
117
				$booleen = $this->getMeta()->obtenirValeurMetadonnee($id_champ_utilise_pseudo, $id_utilisateur);
117
				$booleen = $this->getMeta()->obtenirValeurMetadonnee($id_champ_utilise_pseudo, $id_utilisateur);
118
				$pseudo_utilise = ($booleen == 0) ? false : true;
118
				$pseudo_utilise = ($booleen == 0) ? false : true;
119
		}
119
		}
120
		return $pseudo_utilise;
120
		return $pseudo_utilise;
121
	}
121
	}
122
	
122
 
123
	private function formaterIntitule($utilisateur) {
123
	private function formaterIntitule($utilisateur) {
124
		$intitule = '';
124
		$intitule = '';
125
		if ($utilisateur['pseudoUtilise'] && trim($utilisateur['pseudo']) != '') {
125
		if ($utilisateur['pseudoUtilise'] && trim($utilisateur['pseudo']) != '') {
126
			$intitule = $utilisateur['pseudo'];
126
			$intitule = $utilisateur['pseudo'];
127
		} else {
127
		} else {
128
			$intitule = $utilisateur['prenom'].' '.$utilisateur['nom'];
128
			$intitule = $utilisateur['prenom'].' '.$utilisateur['nom'];
129
		}
129
		}
130
		return $intitule;
130
		return $intitule;
131
	}
131
	}
132
	
132
 
133
	public function updateElement($ressources, $donnees) {
133
	public function updateElement($ressources, $donnees) {
134
		$this->ressources = $ressources;
134
		$this->ressources = $ressources;
135
		$this->donnees = $donnees;
135
		$this->donnees = $donnees;
136
		$this->idAnnuaire = Config::get('annuaire_defaut');
136
		$this->idAnnuaire = Config::get('annuaire_defaut');
137
		
137
 
138
		$infos = null;
138
		$infos = null;
139
		if (isset($this->ressources[0])) {
139
		if (isset($this->ressources[0])) {
140
			$this->utilisateurId = array_shift($this->ressources);
140
			$this->utilisateurId = array_shift($this->ressources);
141
			if (isset($this->ressources[0])) {
141
			if (isset($this->ressources[0])) {
142
				$methode_demande = array_shift($this->ressources);
142
				$methode_demande = array_shift($this->ressources);
Line 158... Line 158...
158
		} else {
158
		} else {
159
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
159
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
160
			$this->envoyerTxt($info);
160
			$this->envoyerTxt($info);
161
		}
161
		}
162
	}
162
	}
163
	
163
 
164
	/**
164
	/**
165
	 * Permet d'envoyer un message à un utilisateur.
165
	 * Permet d'envoyer un message à un utilisateur.
166
	 * RESSOURCE : /utilisateur/[id]/message
166
	 * RESSOURCE : /utilisateur/[id]/message
167
	 * POST : 
167
	 * POST :
168
	 *  - sujet : contient le sujet du message à envoyer.
168
	 *  - sujet : contient le sujet du message à envoyer.
169
	 *  - message : contient le contenu du message à envoyer.
169
	 *  - message : contient le contenu du message à envoyer.
170
	 *  - utilisateur_courriel : contient le courriel de l'utilisateur qui envoie le message (Il doit être
170
	 *  - utilisateur_courriel : contient le courriel de l'utilisateur qui envoie le message (Il doit être
171
	 *  inscrit dans l'annuaire par défaut de Tela Botanica).
171
	 *  inscrit dans l'annuaire par défaut de Tela Botanica).
172
	 *  - copies : peut contenir une liste de courriels séparés par des virguels auxquels une copie du
172
	 *  - copies : peut contenir une liste de courriels séparés par des virguels auxquels une copie du
173
	 *  message sera envoyée. 
173
	 *  message sera envoyée.
174
	 * RÉPONSE :
174
	 * RÉPONSE :
175
	 *  - message : contient le message d'information concernant l'envoie.
175
	 *  - message : contient le message d'information concernant l'envoie.
176
	 */
176
	 */
177
	private function updateMessage() {
177
	private function updateMessage() {
178
		$destinataireId = $this->utilisateurId;//$this->donnees['destinataire_id'];
178
		$destinataireId = $this->utilisateurId;//$this->donnees['destinataire_id'];
179
		$sujet = stripslashes($this->donnees['sujet']);
179
		$sujet = stripslashes($this->donnees['sujet']);
180
		$contenu = stripslashes($this->donnees['message']);
180
		$contenu = stripslashes($this->donnees['message']);
181
		$envoyeur = $this->donnees['utilisateur_courriel'];
181
		$envoyeur = $this->donnees['utilisateur_courriel'];
182
		$copies = array_key_exists('copies', $this->donnees) ? explode(',', $this->donnees['copies']) : null;
182
		$copies = array_key_exists('copies', $this->donnees) ? explode(',', $this->donnees['copies']) : null;
183
		$format = isset($this->donnees['format']) ? $this->donnees['format'] : 'text';
183
		$format = isset($this->donnees['format']) ? $this->donnees['format'] : 'text';
184
		
184
 
185
		$info = null;
185
		$info = null;
186
		if ($this->estAutoriseMessagerie($envoyeur) || $this->getAnnuaire()->utilisateurExisteParMail($this->idAnnuaire, $envoyeur)) {
186
		if ($this->estAutoriseMessagerie($envoyeur) || $this->getAnnuaire()->utilisateurExisteParMail($this->idAnnuaire, $envoyeur)) {
187
			$destinataire = $this->getAnnuaire()->obtenirMailParId($this->idAnnuaire, $destinataireId);
187
			$destinataire = $this->getAnnuaire()->obtenirMailParId($this->idAnnuaire, $destinataireId);
188
			if ($destinataire) {
188
			if ($destinataire) {
189
				if($format == 'html') {
189
				if($format == 'html') {
Line 208... Line 208...
208
			$info['message'] = "Vous n'êtes pas inscrit à Tela Botanica avec le courriel : $envoyeur.\n".
208
			$info['message'] = "Vous n'êtes pas inscrit à Tela Botanica avec le courriel : $envoyeur.\n".
209
				"Veuillez saisir votre courriel d'inscription ou vous inscrire à Tela Botanica.";
209
				"Veuillez saisir votre courriel d'inscription ou vous inscrire à Tela Botanica.";
210
		}
210
		}
211
		return $info;
211
		return $info;
212
	}
212
	}
213
	
213
 
214
	private function getMessagerie() {
214
	private function getMessagerie() {
215
		if (!isset($this->messagerieModele)) {
215
		if (!isset($this->messagerieModele)) {
216
			$this->messagerieModele = new MessageControleur();
216
			$this->messagerieModele = new MessageControleur();
217
		}
217
		}
218
		return $this->messagerieModele;
218
		return $this->messagerieModele;
219
	}
219
	}
220
	
220
 
221
}
221
}
222
?>
222
?>
223
223