Subversion Repositories Applications.annuaire

Rev

Rev 429 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
525 mathias 1
<?php
120 aurelien 2
/**
3
* PHP Version 5
4
*
5
* @category  PHP
6
* @package   annuaire
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2010 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
11
* @link      /doc/annuaire/
12
*/
13
 
14
/**
15
 *
16
 * Classe mère des controleurs de l'application, abstraite, elle contient
17
 * les fonctions utiles à tous les controleurs
18
 * @author aurelien
19
 *
20
 */
525 mathias 21
 
120 aurelien 22
abstract class AppControleur extends Controleur {
23
 
24
	/**
25
	 * (fonction héritée de la classe Controleur)
26
	 * Avant chaque chargement de vue, on ajoute l'url de la page dans
27
	 * les variables à insérer.
28
	 * @param Array $donnes les données à insérer dans la vue
29
	 * @return Array $donnees les données modifiées
30
	 */
31
	public function preTraiterDonnees($donnees) {
32
 
33
		// ajout de l'url de l'appli
34
		$donnees['base_url'] = new Url(Config::get('base_url_application'));
35
 
182 aurelien 36
		$donnees['base_url_styles'] = $this->getUrlBase();
145 aurelien 37
 
182 aurelien 38
		$donnees['url_cette_page'] = $this->getUrlCettePage() ;
145 aurelien 39
 
182 aurelien 40
		$donnees['base_url_application'] = $this->getUrlBaseComplete();
145 aurelien 41
 
42
		$this->chargerModele('AnnuaireModele');
120 aurelien 43
 
44
		//ajout des variables d'identification
45
		$donnees['est_admin'] = Registre::getInstance()->get('est_admin');
46
		$donnees['identification_id'] =	Registre::getInstance()->get('identification_id');
47
		$donnees['identification_mail']	= Registre::getInstance()->get('identification_mail');
182 aurelien 48
 
143 aurelien 49
		$format = Config::get('date_format_simple');
50
 
51
		if($format) {
52
			$donnees['format_date_simple'] = $format;
53
		} else {
54
			$donnees['format_date_simple'] = 'd/m/Y';
55
		}
120 aurelien 56
 
57
		return $donnees;
58
	}
182 aurelien 59
 
60
	public function getUrlBase() {
61
 
62
		$base_vrai_chemin = str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin()));
63
		$base_vrai_chemin .= '/';
64
 
65
		return new Url($base_vrai_chemin);
66
	}
120 aurelien 67
 
182 aurelien 68
	public function getUrlBaseComplete() {
69
		return new Url('http://'.$_SERVER['SERVER_NAME'].str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin())));
70
	}
71
 
72
	public function getUrlCettePage() {
73
		return $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
74
	}
75
 
339 aurelien 76
	public static function getUrlConfirmationInscriptionAdmin($code_confirmation_inscription) {
77
 
78
		$url_cette_page = 'http://'.$_SERVER['SERVER_NAME'].str_replace('annuaire_utilisateur','annuaire_admin',$_SERVER['REQUEST_URI']);
79
		$base_url = new URL($url_cette_page);
80
		$base_url->setVariablesRequete(array());
81
		$base_url->setVariableRequete('m','annuaire_inscription_confirmation_admin');
82
		$base_url->setVariableRequete('id',$code_confirmation_inscription);
83
 
84
		return $base_url->getURL();
85
	}
86
 
87
	public static function getUrlConfirmationInscription($code_confirmation_inscription) {
88
 
89
		$url_cette_page = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
90
		$base_url = new URL($url_cette_page);
91
		$base_url->setVariablesRequete(array());
92
		$base_url->setVariableRequete('m','annuaire_inscription_confirmation');
93
		$base_url->setVariableRequete('id',$code_confirmation_inscription);
94
 
95
		return $base_url->getURL();
96
	}
97
 
98
	public static function getUrlSuppressionInscriptionTemporaire($id_annuaire, $code_donnee_temporaire) {
99
 
100
		$url_cette_page = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
101
		$base_url = new URL($url_cette_page);
102
		$base_url->setVariablesRequete(array());
103
		$base_url->setVariableRequete('m','annuaire_suppression_inscription_temp');
104
		$base_url->setVariableRequete('id',$code_donnee_temporaire);
105
		$base_url->setVariableRequete('id_annuaire',$id_annuaire);
106
 
107
		return $base_url->getURL();
108
	}
109
 
213 aurelien 110
	public static function getUrlConsultationProfil($id_annuaire, $id_utilisateur) {
111
 
112
		$url_consultation_profil = new Url(Config::get('base_url_application'));
113
		$url_consultation_profil->setVariableRequete('m','annuaire_fiche_utilisateur_consultation');
114
		$url_consultation_profil->setVariableRequete('id_annuaire',$id_annuaire);
115
		$url_consultation_profil->setVariableRequete('id_utilisateur',$id_utilisateur);
116
 
117
		return $url_consultation_profil;
118
	}
119
 
120
	public static function getUrlModificationProfil($id_annuaire, $id_utilisateur) {
121
 
122
		$url_modification_profil = new Url(Config::get('base_url_application'));
123
		$url_modification_profil->setVariableRequete('m','annuaire_formulaire_modification_inscription');
124
		$url_modification_profil->setVariableRequete('id_annuaire',$id_annuaire);
125
		$url_modification_profil->setVariableRequete('id_utilisateur',$id_utilisateur);
126
 
127
		return $url_modification_profil;
128
	}
129
 
130
	public static function getUrlOubliMotDePasse($id_annuaire,$id_utilisateur) {
131
 
132
		$url_oubli_mdp = new Url(Config::get('base_url_application'));
133
		$url_oubli_mdp->setVariableRequete('m','annuaire_afficher_formulaire_oubli_mdp');
134
		$url_oubli_mdp->setVariableRequete('id_annuaire',$id_annuaire);
135
		$url_oubli_mdp->setVariableRequete('id_utilisateur',$id_utilisateur);
136
 
137
		return $url_oubli_mdp;
138
	}
139
 
140
	public static function getUrlAjoutOuModificationImage($id_annuaire, $id_utilisateur) {
141
 
142
		$url_ajout_modification_image = new Url(Config::get('base_url_application'));
143
		$url_ajout_modification_image->setVariableRequete('m','annuaire_afficher_formulaire_ajout_image');
144
		$url_ajout_modification_image->setVariableRequete('id_annuaire',$id_annuaire);
145
		$url_ajout_modification_image->setVariableRequete('id_utilisateur',$id_utilisateur);
146
		return $url_ajout_modification_image;
147
 
148
	}
149
 
120 aurelien 150
	/**
151
	 * Renvoie le template de pagination, considérant des éléments donnés en paramètre
152
	 * @param int $numero_page le numéro de page en cours
153
	 * @param int $taille_page la taille de page
154
	 * @param int $total le nombre total de pages
155
	 * @param object $url_base l'url de base de la page
156
	 * @param array $valeurs les valeurs à concatener à l'url
157
	 * @return string le html contenu la template de pagination rempli avec les infos
158
	 */
159
	protected function paginer($numero_page = 1, $taille_page = 50, $total, $url_base, $valeurs) {
429 aurelien 160
 
161
	    $start = ($numero_page - 1)*$taille_page;
358 aurelien 162
	    $limit = $taille_page;
163
	    $intervalle_pages = 5;
164
 
429 aurelien 165
	    $page_en_cours = $numero_page;
166
 
167
	    $pages_avant_apres = (ceil($intervalle_pages /2) + 1);
168
	    $pages_debut_intervalle = 0;
169
	    $nb_pages = 0;
170
 
171
	    if ($page_en_cours < $pages_avant_apres)  {
172
		    $pages_debut_intervalle = 1;
173
	    } else {
174
		    $pages_debut_intervalle = $page_en_cours - $pages_avant_apres + 2;
175
	    }
176
 
177
	    $pages_a_afficher = $intervalle_pages;
178
 
179
	    $intervalle_max = (($page_en_cours) * $limit);
180
 
181
	    foreach($valeurs as $cle => $variable) {
182
			    $url_base->setVariableRequete($cle,$variable);
183
		    }
184
	    $donnees['url_base_pagination'] = $url_base->getUrl().'&amp;taille_page='.$taille_page.'&amp;numero_page=';
185
 
186
	    $nb_pages = ceil($total/$limit);
120 aurelien 187
 
429 aurelien 188
	    if ($page_en_cours == $nb_pages) {
189
		    $intervalle_max = $total;
190
	    }
191
 
192
	    $donnees['pages_taille_intervalle'] = $intervalle_pages;
193
	    $donnees['pages_debut_intervalle'] = $pages_debut_intervalle;
194
	    $donnees['page_en_cours'] = $page_en_cours;
195
	    $donnees['intervalle_min'] = (($page_en_cours-1) * $limit);
196
	    $donnees['intervalle_max'] = $intervalle_max;
197
	    $donnees['nb_resultats'] = $total;
198
	    $donnees['nb_pages'] = $nb_pages;
199
	    $donnees['taille_page'] = $limit;
200
 
201
	    return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees);
120 aurelien 202
	}
203
 
204
 
205
	public function obtenirIdParMail($id_annuaire, $mail_utilisateur) {
206
 
207
		$this->chargerModele('AnnuaireModele');
208
		$id = $this->AnnuaireModele->obtenirIdParMail($id_annuaire, $mail_utilisateur);
209
 
210
		return $id;
211
	}
212
 
213
	public function utilisateurExiste($id_annuaire,$id, $utilise_mail = true) {
214
 
215
		$this->chargerModele('AnnuaireModele');
216
 
217
		if($utilise_mail) {
218
			$existe = $this->AnnuaireModele->utilisateurExisteParMail($id_annuaire,$id);
219
		} else {
220
			$existe = $this->AnnuaireModele->utilisateurExisteParId($id_annuaire,$id);
221
		}
222
 
223
		return $existe;
224
	}
225
 
213 aurelien 226
 
227
/** ---------------------------------	 Fonction de formatage de données communes aux classes ---------------------------------*/
228
 
229
	public static function formaterVersDateMysql($date) {
230
 
231
		$format = Config::get('date_format_simple');
232
 
233
		if(!isset($format)) {
234
			$format = 'd/m/Y';
235
		}
236
 
237
		$recherche = array('d','m','Y');
238
		$remplacement = array('([0-9]{1,2})','([0-9]{1,2})','([0-9]{4})');
239
 
240
		$pattern_date_simple = str_replace($recherche, $remplacement, $format);
120 aurelien 241
 
213 aurelien 242
		if(ereg($pattern_date_simple, $date)) {
243
			$date_tab = split('/', $date);
244
			$time = mktime(0,0,0,$date_tab[1],$date_tab[0],$date_tab[2]);
245
		} else {
246
			$time = strtotime($date);
247
		}
248
 
249
		return date('Y-m-d h:i:s', $time);
250
	}
251
 
252
	public static function formaterDateMysqlVersDateAnnuaire($date) {
253
 
254
		$format = Config::get('date_format_simple');
255
 
256
		if(!isset($format)) {
257
			$format = 'd/m/Y';
258
		}
259
 
260
		$time = strtotime($date);
261
		return date($format, $time);
262
	}
263
 
264
	public static function genererDateCouranteFormatMySql() {
265
		return date('Y-m-d h:i:s');
266
	}
217 aurelien 267
 
329 aurelien 268
	public static function genererDateCouranteFormatAnnuaire() {
269
		$date_mysql_courante = self::genererDateCouranteFormatMySql();
270
		return self::formaterDateMysqlVersDateAnnuaire($date_mysql_courante);
271
	}
272
 
294 aurelien 273
	public static function formaterMotPremiereLettreChaqueMotEnMajuscule($chaine) {
274
		$encodage = Config::get('appli_encodage');
275
 
276
		return str_replace(' - ', '-',
277
					mb_convert_case(
278
						mb_strtolower(
279
								str_replace('-', ' - ', $chaine),
280
								$encodage
281
						),
282
						MB_CASE_TITLE,
283
						$encodage
284
					)
285
				);
286
	}
287
 
288
	public static function formaterMotEnMajuscule($chaine) {
334 jpm 289
		return mb_convert_case($chaine, MB_CASE_UPPER, Config::get('appli_encodage'));
294 aurelien 290
	}
291
 
217 aurelien 292
	function aplatirTableauSansPreserverCles($tableau) {
293
 
294
	    $temp = array();
295
	    foreach ($tableau as $cle => $valeur) {
296
	        if (is_array($valeur)) {
297
	            $temp = array_merge($temp,$this->aplatirTableauSansPreserverCles($valeur));
298
	        } else {
299
	        	$temp[] = $valeur;
300
	        }
301
	    }
302
	    return $temp;
303
	}
213 aurelien 304
 
120 aurelien 305
/** ---------------------------------    Fonction d'extraction des champs de mappage -------------------------------------------*/
306
 
307
	/**
308
	 * Renvoie les champs de mappage correspondant à un annuaire donné
309
	 * @param int $id_annuaire l'indentifant de l'annuaire pour lequel on veut ces informations
310
	 * @return Array un tableau de mappage des champs
311
	 *
312
	 */
313
	protected function obtenirChampsMappageAnnuaire($id_annuaire) {
314
 
315
		$this->chargerModele('AnnuaireModele');
316
		$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
317
 
318
		return $tableau_mappage;
319
	}
320
 
145 aurelien 321
	protected function obtenirNomsChampsMappageAnnuaire($id_annuaire) {
120 aurelien 322
 
145 aurelien 323
		$this->chargerModele('AnnuaireModele');
324
		$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
325
 
326
		$this->chargerModele('MetadonneeModele');
327
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
328
 
329
		$tableau_nom_champs = array();
330
 
331
		foreach($metadonnees as $id_champ => $valeur) {
332
 
333
			// Si le champ fait partie des champs mappés
334
			$cle_champ_mappage = array_search($id_champ, $tableau_mappage[1]);
335
 
336
			if($cle_champ_mappage) {
337
				$tableau_nom_champs[$cle_champ_mappage] = $valeur['amc_abreviation'];
338
			}
339
		}
340
 
341
		return $tableau_nom_champs;
342
	}
343
 
344
 
345
 
346
 
120 aurelien 347
/** ---------------------------------    Fonction d'affichage des champs de metadonnées -------------------------------------------*/
348
 
349
	/**
350
	 * Charge et affiche le champ correspondant à la modification ou l'ajout d'un champ de metadonnée
351
	 * @param int $id_champ l'identifiant du champ demandé
352
	 * @return string la vue contenant le champ de formulaire correspondant
353
	 */
354
	public function afficherFormulaireChampMetadonnees($id_champ, $donnees) {
355
 
356
		// si le champ est restreint à une valeur de liste
357
		if($donnees['amc_ce_ontologie'] != 0) {
358
				$this->chargerModele('OntologieModele');
359
				$donnees['liste_valeurs'] = $this->OntologieModele->chargerListeOntologie($donnees['amc_ce_ontologie']);
360
		}
361
 
362
		$donnees['amc_id_champ'] = $id_champ;
363
 
364
		if(isset($donnees['amc_ce_template_affichage'])) {
365
			$nom_type_champ = $donnees['amc_ce_template_affichage'];
366
		} else {
367
			$this->chargerModele('MetadonneeModele');
368
			$nom_type_champ = $this->MetadonneeModele->renvoyerTypeAffichageParId($donnees['amc_ce_type_affichage']);
369
		}
370
 
371
		return $this->getVue(Config::get('dossier_squelettes_champs').$nom_type_champ,$donnees);
372
	}
373
 
374
 
213 aurelien 375
 
376
 
120 aurelien 377
/** ---------------------------------    Fonction d'existence et de génération des formulaires -------------------------------------------*/
378
 
213 aurelien 379
	public function annuaireAvoirFormulaireInscription($code_annuaire) {
380
		return $this->templateExiste($code_annuaire.'_inscription','formulaires/');
120 aurelien 381
	}
213 aurelien 382
 
383
	public function annuaireAvoirPageAccueilPostInscription($code_annuaire) {
384
		return $this->templateExiste($code_annuaire.'_inscription_confirmation', Config::get('dossier_squelettes_annuaires'));
385
	}
386
 
387
	public function annuaireAvoirFicheUtilisateur($code_annuaire) {
388
		return $this->templateExiste($code_annuaire.'_fiche','/fiches/');
389
	}
390
 
391
	public function annuaireAvoirFormulaireModificationInscription($code_annuaire) {
392
		return $this->templateExiste($code_annuaire.'_modification','/formulaires/');
393
	}
394
 
395
	public function annuaireAvoirPagePostDesinscription($code_annuaire) {
396
		return $this->templateExiste($code_annuaire.'_desinscription_confirmation','/annuaires/');
397
	}
398
 
399
	public function annuaireAvoirFormulaireRecherche($code_annuaire) {
400
		return $this->templateExiste($code_annuaire.'_recherche','/formulaires/');
401
	}
402
 
403
	public function annuaireAvoirPageResultatRecherche($code_annuaire) {
404
		return $this->templateExiste($code_annuaire.'_resultat_recherche', Config::get('dossier_squelettes_annuaires'));
405
	}
406
 
120 aurelien 407
	/**
213 aurelien 408
	 * Renvoie true si le template demandé existe, sinon faux
120 aurelien 409
	 * @param string $nom_formulaire le nom du formulaire demandé (qui est normalement le code d'un annuaire)
410
	 * @param string $dossier le nom du dossier sous dossier demandé
411
	 * @return boolean true si le formulaire existe, false sinon
412
	 */
413
	protected function templateExiste($nom_template, $dossier = '/') {
182 aurelien 414
 
120 aurelien 415
		return file_exists(Config::get('chemin_squelettes').$dossier.$nom_template.'.tpl.html');
416
	}
417
 
145 aurelien 418
 
419
	/**
420
	 * Renvoie une fiche utilisateur minimale auto-générée
421
	 * @param string $donnees les données à inclure dans le formulaire
422
	 * @return string la vue contenant le formulaire généré
423
	 */
424
	protected function genererFicheInscrit($donnees) {
120 aurelien 425
 
145 aurelien 426
		$formulaire_modele = $this->getVue(Config::get('dossier_squelettes_fiches').'fiche',$donnees);
427
 
428
		if($formulaire_modele) {
429
			return $formulaire_modele;
430
		} else {
431
			trigger_error("impossible de trouver le squelette de référence pour le formulaire");
432
		}
433
 
434
		return false;
435
	}
436
 
120 aurelien 437
	/**
438
	 * Renvoie un formulaire d'inscription minimal auto-généré
439
	 * @param string $donnees les donnée à inclure dans le formulaire
440
	 * @return string la vue contenant le formulaire généré
441
	 */
442
	protected function genererFormulaireInscription($donnees) {
443
 
444
		$formulaire_modele = $this->getVue(Config::get('dossier_squelettes_formulaires').'inscription',$donnees);
445
 
446
		if($formulaire_modele) {
447
			return $formulaire_modele;
448
		} else {
449
			trigger_error("impossible de trouver le squelette de référence pour le formulaire");
450
		}
451
 
452
		return false;
453
	}
145 aurelien 454
 
455
	/**
456
	 * Renvoie un formulaire d'inscription minimal auto-généré
457
	 * @param string $donnees les donnée à inclure dans le formulaire
458
	 * @return string la vue contenant le formulaire généré
459
	 */
460
	protected function genererFormulaireModificationInscription($donnees) {
120 aurelien 461
 
145 aurelien 462
		$formulaire_modele = $this->getVue(Config::get('dossier_squelettes_formulaires').'modification',$donnees);
463
 
464
		if($formulaire_modele) {
465
			return $formulaire_modele;
466
		} else {
467
			trigger_error("impossible de trouver le squelette de référence pour le formulaire");
468
		}
469
 
470
		return false;
471
	}
472
 
120 aurelien 473
	/**
474
	 * Renvoie un formulaire d'inscription minimal auto-généré
475
	 * @param string $donnees les donnée à inclure dans le formulaire
476
	 * @return string la vue contenant le formulaire généré
477
	 */
478
	protected function genererFormulaireRecherche($donnees) {
479
 
480
		$formulaire_modele = $this->getVue(Config::get('dossier_squelettes_formulaires').'recherche',$donnees);
481
 
482
		if($formulaire_modele) {
483
			return $formulaire_modele;
484
		} else {
485
			trigger_error("impossible de trouver le squelette de référence pour le formulaire");
486
		}
487
 
488
		return false;
489
	}
490
 
491
/** ---------------------------------    Fonction d'extraction d'informations utilisées entre autres par les web services -------------------------------------------*/
492
 
493
	public function obtenirValeursUtilisateur($id_annuaire, $id_utilisateur) {
494
 
495
		$this->chargerModele('AnnuaireModele');
496
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
497
 
498
		$this->chargerModele('MetadonneeModele');
499
 
500
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
501
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
502
 
503
		$valeurs_annuaire = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]);
504
		$valeurs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
429 aurelien 505
 
120 aurelien 506
		foreach($tableau_mappage[0] as $cle => $nom_champ) {
507
 
508
			if($cle != 'champ_id') {
509
 
510
				$nom_champ_formulaire = $metadonnees[$tableau_mappage[1][$cle]]['amc_abreviation'];
294 aurelien 511
				$valeur = $valeurs_annuaire[$nom_champ] ;
120 aurelien 512
 
294 aurelien 513
				if($cle == 'champ_nom') {
514
					$valeur = AppControleur::formaterMotEnMajuscule($valeur);
515
				}
516
 
517
				if($cle == 'champ_prenom') {
518
					 $valeur = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($valeur);
519
				}
520
 
120 aurelien 521
				if(isset($valeurs_metadonnees[$nom_champ_formulaire])) {
522
					if(isset($valeurs_metadonnees[$nom_champ_formulaire]['amv_valeur']) && $valeurs_metadonnees[$nom_champ_formulaire]['amv_valeur'] != '') {
523
						$valeur = $valeurs_metadonnees[$nom_champ_formulaire]['amv_valeur'];
524
					}
525
					$informations_champ = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]) ;
526
					$valeurs_metadonnees[$nom_champ_formulaire] = array_merge($valeurs_metadonnees[$nom_champ_formulaire],$informations_champ);
527
				} else {
528
					$informations_champ = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]) ;
529
					$valeurs_metadonnees[$nom_champ_formulaire] = $informations_champ;
530
				}
531
			}
532
		}
533
 
534
		foreach($valeurs_metadonnees as $nom_champ => $valeur) {
535
			$verificateur = new VerificationControleur();
536
			$valeurs_metadonnees[$nom_champ] = $verificateur->verifierEtRemplacerValeurChampPourAffichage($valeur['amc_ce_type_affichage'],$valeur, 1);
537
		}
538
 
539
		return $valeurs_metadonnees;
540
	}
541
 
329 aurelien 542
	public function obtenirInfosUtilisateur($id_annuaire,$id, $mail = true) {
120 aurelien 543
 
544
		$this->chargerModele('AnnuaireModele');
545
 
546
		if($mail) {
547
			$id = $this->AnnuaireModele->obtenirIdParMail($id_annuaire,$id);
548
		}
549
 
550
		$champs_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
551
 
552
		$valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire,$id, $champs_mappage[0]);
553
 
554
		// TODO: valeurs incomplètes, voir ce qu'on renvoie obligatoirement
555
		// et ce qu'on ne renvoie pas
339 aurelien 556
		$valeurs = array('fullname' => $valeurs[$champs_mappage[0]['champ_prenom']].' '.$valeurs[$champs_mappage[0]['champ_nom']],
120 aurelien 557
                           'nickname' => $valeurs[$champs_mappage[0]['champ_nom']],
213 aurelien 558
                           'dob' => '',
120 aurelien 559
                           'email' => $valeurs[$champs_mappage[0]['champ_mail']],
329 aurelien 560
                           'gender' => '',
120 aurelien 561
                           'postcode' => $valeurs[$champs_mappage[0]['champ_code_postal']],
329 aurelien 562
                           'country' => '',
120 aurelien 563
                           'language' => 'fr',
564
                           'timezone' => 'Europe/Paris');
565
 
329 aurelien 566
		return $valeurs;
120 aurelien 567
	}
568
 
569
	public function comparerIdentifiantMotDePasse($id_annuaire,$id_utilisateur,$mot_de_passe, $utilise_mail = true, $mdp_deja_crypte = true) {
570
 
571
		$this->chargerModele('AnnuaireModele');
572
 
573
		if($utilise_mail) {
574
			$id_utilisateur = $this->AnnuaireModele->obtenirIdParMail($id_annuaire,$id_utilisateur);
575
		}
576
 
577
		if(!$mdp_deja_crypte) {
578
			$mot_de_passe = VerificationControleur::encrypterMotDePasseStatic($mot_de_passe);
579
		}
580
 
581
		return $this->AnnuaireModele->comparerIdentifiantMotDePasse($id_annuaire,$id_utilisateur,$mot_de_passe);
582
	}
583
 
294 aurelien 584
}
585
 
586
?>