Subversion Repositories Applications.annuaire

Rev

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

Rev 65 Rev 90
Line 201... Line 201...
201
	public function ajouterInscriptionTemporaire($valeurs) {
201
	public function ajouterInscriptionTemporaire($valeurs) {
Line 202... Line 202...
202
 
202
 
203
		$this->chargerModele('MetadonneeModele');
203
		$this->chargerModele('MetadonneeModele');
204
		$id_annuaire = $valeurs['aa_id_annuaire'];
204
		$id_annuaire = $valeurs['aa_id_annuaire'];
205
		unset($valeurs['aa_id_annuaire']);
205
		unset($valeurs['aa_id_annuaire']);
206
 
-
 
207
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
206
		
208
		$valeurs_mappees = array();
207
		$valeurs_mappees = array();
Line 209... Line -...
209
		$valeurs_a_inserer = array();
-
 
210
 
-
 
211
		$verificateur = new VerificationControleur();
-
 
212
 
-
 
213
		// on itère sur le tableau de valeur pour récupérer les champs de mappage;
-
 
214
		foreach($valeurs as $nom_champ => $valeur) {
-
 
215
 
-
 
216
			// pour chaque valeur
-
 
217
			// on extrait l'id du champ
-
 
218
			$ids_champ = mb_split("_",$nom_champ, 3);
-
 
219
 
-
 
220
			if(count($ids_champ) == 3) {
-
 
221
 
-
 
222
				$type = $ids_champ[0];
-
 
223
				$id_champ = $ids_champ[2];
-
 
224
				$condition = $ids_champ[1];
-
 
225
 
-
 
226
				// cas de la checkbox qui devrait être là mais pas cochée
-
 
227
				if($condition == 'hidden' && !isset($valeurs[$type.'_'.$id_champ])) {
-
 
228
					// dans ce cas là on fabrique une valeur vide
-
 
229
					$valeurs[$type.'_'.$id_champ] = 0;
-
 
230
				}
-
 
231
 
-
 
232
			} else {
-
 
233
				$type = $ids_champ[0];
-
 
234
				$condition = false;
-
 
235
				$id_champ = $ids_champ[1];
-
 
236
			}
-
 
237
 
208
		$valeurs_a_inserer = array();
Line 238... Line -...
238
			// Si le champ fait partie des champs mappés
-
 
239
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
-
 
240
 
-
 
241
			// on ajoute sa clé correspondante dans le tableau des champs mappés
-
 
242
			// qui sont les champs à vérifier
-
 
243
			if($condition) {
-
 
244
				$condition = $valeurs[$type.'_'.$id_champ];
209
 
245
				$valeurs_mappees[$id_champ] = array('valeur' => $valeur, 'type' => $type, 'condition' => $condition);
-
 
246
			} else {
-
 
Line 247... Line -...
247
				//$valeurs_mappees[$cle_champ] = $valeur;
-
 
248
				$valeurs_mappees[$id_champ] = array('valeur' => $valeur, 'type' => $type, 'condition' => false);
210
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
249
			}
-
 
250
 
211
 
-
 
212
		$verificateur = new VerificationControleur();
-
 
213
 
Line 251... Line 214...
251
			if(!$condition) {
214
		$valeurs_collectees = $verificateur->collecterValeurInscription($valeurs, $tableau_mappage);
252
				$valeurs_a_inserer[$nom_champ] = $valeur;
215
		
253
			}
216
		$valeurs_mappees = $valeurs_collectees['valeurs_mappees'];
254
		}
217
		$valeurs_a_inserer = $valeurs_collectees['valeurs_a_inserer'];
255
 
218
 
256
		// vérification des champs minimaux : nom, prénom, mail, mot de passe
219
		// vérification des champs minimaux : nom, prénom, mail, mot de passe
257
		if($erreurs = $verificateur->verifierErreursChampsSelonType($id_annuaire,$valeurs_mappees, $tableau_mappage)) {
220
		/*if($erreurs = $verificateur->verifierErreursChampsSelonType($id_annuaire,$valeurs_mappees, $tableau_mappage)) {
Line -... Line 221...
-
 
221
			$valeurs['erreurs'] = $erreurs;
-
 
222
			return $this->afficherFormulaireInscription($id_annuaire, $valeurs);
258
			$valeurs['erreurs'] = $erreurs;
223
		}*/
259
			return $this->afficherFormulaireInscription($id_annuaire, $valeurs);
224
		
260
		}
225
		$valeurs_a_inserer['aa_id_annuaire'] = $id_annuaire ;
261
 
226
 
262
		$valeurs_a_inserer['aa_id_annuaire'] = $id_annuaire ;
227
		$this->chargerModele('DonneeTemporaireModele');
Line 281... Line 246...
281
	 * Typiquement, on déclenche cette fonction en cliquant sur le lien contenu dans le mail de confirmation
246
	 * Typiquement, on déclenche cette fonction en cliquant sur le lien contenu dans le mail de confirmation
282
	 * @param int $indentifant L'identifant de session d'une tentative d'inscription
247
	 * @param int $indentifant L'identifant de session d'une tentative d'inscription
283
	 */
248
	 */
284
	public function ajouterNouvelleInscription($identifiant) {
249
	public function ajouterNouvelleInscription($identifiant) {
Line 285... Line 250...
285
 
250
 
286
		$this->chargerModele('AnnuaireModele');
-
 
287
 
251
		$this->chargerModele('DonneeTemporaireModele');
Line 288... Line 252...
288
		$valeurs = $this->AnnuaireModele->chargerDonneesInscriptionTemporaire($identifiant);
252
		$valeurs = $this->DonneeTemporaireModele->chargerDonneeTemporaire($identifiant);
289
 
253
 
290
		if(!$valeurs || count($valeurs) == 0) {
254
		if(!$valeurs || count($valeurs) == 0) {
Line -... Line 255...
-
 
255
			// TODO afficher vue en cas d'echec
-
 
256
		}
291
			// TODO afficher vue en cas d'echec
257
 
292
		}
258
		$this->chargerModele('AnnuaireModele');
Line 293... Line 259...
293
 
259
 
Line 302... Line 268...
302
 
268
 
303
		$valeurs_mappees = array();
269
		$valeurs_mappees = array();
Line 304... Line 270...
304
		$valeurs_metadonnees = array();
270
		$valeurs_metadonnees = array();
305
 
271
 
-
 
272
		$mail_nouvel_inscrit = $valeurs['mail_'.$tableau_mappage[1]['champ_mail']];
-
 
273
		$pass_nouvel_inscrit = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
-
 
274
 
-
 
275
		$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']];
-
 
276
		$prenom = $valeurs['text_'.$tableau_mappage[1]['champ_prenom']];
-
 
277
		$mail = $mail_nouvel_inscrit;
Line 306... Line 278...
306
		$mail_nouvel_inscrit = $valeurs['mail_'.$tableau_mappage[1]['champ_mail']];
278
		$pass = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
307
		//$pass_nouvel_inscrit = $valeurs['pass_'.$tableau_mappage[1]['champ_pass']];
279
		$pays = $valeurs['select_'.$tableau_mappage[1]['champ_pays']];
Line 308... Line 280...
308
 
280
 
Line 331... Line 303...
331
			} else {
303
			} else {
332
				$valeurs_metadonnees[$nom_champ] = $valeur;
304
				$valeurs_metadonnees[$nom_champ] = $valeur;
333
			}
305
			}
334
		}
306
		}
Line -... Line 307...
-
 
307
 
-
 
308
		if(isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
-
 
309
			$pays = $valeurs_mappees[$tableau_mappage[0]['champ_pays']];
-
 
310
			$valeurs_metadonnees[$tableau_mappage[1]['champ_pays']] = $pays;
-
 
311
			$pays = $this->MetadonneeModele->renvoyerCorrespondanceAbreviationId($pays);
-
 
312
			$valeurs_mappees[$tableau_mappage[0]['champ_pays']] = $pays;
-
 
313
		}
335
 
314
 
336
		// obtenir l'id du nouvel arrivant en faisant un select sur le mail qui doit être unique
315
		// obtenir l'id du nouvel arrivant en faisant un select sur le mail qui doit être unique
Line 337... Line 316...
337
		$id_nouvel_inscrit = $this->ajouterNouvelleInscriptionDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $tableau_mappage[0]);
316
		$id_nouvel_inscrit = $this->AnnuaireModele->ajouterInscriptionDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $tableau_mappage[0]);
338
 
317
 
Line 339... Line 318...
339
		// les champs de metadonnees arrivent avec un identifiant sous la forme type_condition_id
318
		// les champs de metadonnees arrivent avec un identifiant sous la forme type_condition_id
Line 348... Line 327...
348
			if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_nouvel_inscrit,$valeur)) {
327
			if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_nouvel_inscrit,$valeur)) {
349
				// on continue
328
				// on continue
350
			} else {
329
			} else {
Line 351... Line 330...
351
 
330
 
-
 
331
				// Si une des insertions échoue, on supprime les méta valeurs déjà entrées.
352
				// Si une des insertions échoue, on supprime les méta valeurs déjà entrées.
332
				// La transaction du pauvre en quelque sorte
353
				$this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_nouvel_inscrit);
333
				$this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_nouvel_inscrit);
354
				return false;
334
				return false;
355
			}
335
			}
Line 356... Line 336...
356
		}
336
		}
357
 
-
 
Line -... Line 337...
-
 
337
 
-
 
338
			$appli_controleur = new ApplicationExterneControleur();
-
 
339
 
-
 
340
			$params = array (
-
 
341
				'id_utilisateur' => $id_nouvel_inscrit,
-
 
342
				'prenom' => $prenom,
-
 
343
				'nom' => $nom,
-
 
344
				'mail' => $mail,
-
 
345
				'pass' => $pass,
-
 
346
				'pays' => $pays,
Line 358... Line -...
358
		//TODO: gérer le cas de spip et de wikini par un multimapping des champs
-
 
359
		//TODO: voir openid
347
				'nouveau_pass' => '',
360
 
348
				'nouveau_mail' => ''
361
 
349
			);
Line 362... Line 350...
362
		// TODO appel des plugins d'inscription
350
 
363
		// on crée un controleur appelle les hooks de résumé pour chaque application externe
351
		// on crée un controleur qui appelle les webservice pour chaque application externe
Line 364... Line 352...
364
		$resumes_controleur = new ApplicationExterneControleur();
352
		$resumes_controleur = new ApplicationExterneControleur();
Line 365... Line 353...
365
		$resumes_controleur->ajouterInscription($id_nouvel_inscrit, $mail_nouvel_inscrit);
353
		$resumes_controleur->ajouterInscription($id_nouvel_inscrit, $params);
366
 
354
 
367
		// Si tout a réussi on supprime les données d'inscription temporaire
-
 
368
		$this->AnnuaireModele->supprimerDonneesInscriptionTemporaire($identifiant);
355
		// Si tout a réussi on supprime les données d'inscription temporaire
Line 369... Line 356...
369
 
356
		$this->AnnuaireModele->supprimerDonneesInscriptionTemporaire($identifiant);
370
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
357
 
371
 
358
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
372
		// Identifier l'utilisateur !
359
 
Line 385... Line 372...
385
			return $this->afficherFicheUtilisateur($id_annuaire, $id_nouvel_inscrit);
372
			return $this->afficherFicheUtilisateur($id_annuaire, $id_nouvel_inscrit);
386
		}
373
		}
387
	}
374
	}
Line 388... Line 375...
388
 
375
 
389
	/**
-
 
390
	 * Ajoute un nouvel inscrit dans l'annuaire mappé donné en paramètre.
-
 
391
	 * En cas de succès, renvoie l'identifiant du nouvel inscrit qui sera
-
 
392
	 * utilisé pour insérer les métadonnées liées
-
 
393
	 *
-
 
394
	 * @param int $id_annuaire identifiant de l'annuaire auquel sera lié le nouvel inscrit
-
 
395
	 * @param Array $valeurs_mappees Tableau contenant les valeurs à insérer et ayant comme clés des noms de colonnes
-
 
396
	 * @param Array $noms_champs Tableau contenant les noms des champs à insérer
-
 
397
	 * @return int l'identifiant unique du nouvel inscrit
-
 
398
	 */
-
 
399
	public function ajouterNouvelleInscriptionDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $noms_champs) {
-
 
400
 
-
 
401
		$this->chargerModele('AnnuaireModele');
-
 
402
		$resultat = $this->AnnuaireModele->ajouterInscriptionDansAnnuaireMappe($id_annuaire, $valeurs_mappees, $noms_champs);
-
 
403
 
-
 
404
		return $resultat;
-
 
405
	}
-
 
406
 
-
 
407
	public function afficherFormulaireIdentification($donnees = array()) {
-
 
408
 
-
 
409
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'identification', $donnees);
-
 
410
	}
-
 
411
 
-
 
412
	/**
376
	/**
413
	 * Affiche la fiche principale d'un utilisateur
377
	 * Affiche la fiche principale d'un utilisateur
414
	 * @param int $id_annuaire l'identifiant de l'annuaire
378
	 * @param int $id_annuaire l'identifiant de l'annuaire
415
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
379
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
416
	 * @return string la vue contenant la fiche utilisateur
380
	 * @return string la vue contenant la fiche utilisateur
417
	 */
381
	 */
Line 418... Line 382...
418
	public function afficherFicheUtilisateur($id_annuaire, $id_utilisateur) {
382
	public function afficherFicheUtilisateur($id_annuaire, $id_utilisateur) {
419
 
383
 
420
		// Chargement des informations de l'utilisateur dans la table annuaire principale
384
		// Chargement des informations de l'utilisateur dans la table annuaire principale
421
		$this->chargerModele('AnnuaireModele');
-
 
422
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
-
 
423
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
424
		$tableau_valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]);
-
 
425
 
-
 
426
		// chargement des métadonnées associées à l'utilisateur
-
 
427
		$this->chargerModele('MetadonneeModele');
-
 
428
		$champs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
-
 
429
 
-
 
430
		$verificateur = new VerificationControleur();
-
 
431
 
-
 
432
		// on vérifie s'il existe un type d'affichage particulier pour les colonnes de l'annuaire mappé
-
 
433
		foreach($tableau_mappage[0] as $cle => $nom_champ) {
-
 
434
 
-
 
435
			$valeur = $tableau_valeurs[$nom_champ] ;
-
 
436
			if(isset($tableau_mappage[1][$cle])) {
-
 
437
 
-
 
438
				$tableau_valeurs[$cle] = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]);
-
 
439
				$type_affichage = $this->MetadonneeModele->renvoyerTypeAffichagePourColonne($tableau_mappage[1][$cle]);
-
 
440
				if($type_affichage) {
-
 
441
					$tableau_valeurs[$cle]['amc_ce_type_affichage'] = $type_affichage;
-
 
442
				}
-
 
443
 
-
 
444
			} else {
-
 
445
				$tableau_valeurs[$cle] = $valeur;
-
 
446
			}
-
 
Line 447... Line 385...
447
			unset($tableau_valeurs[$nom_champ]);
385
		$this->chargerModele('AnnuaireModele');
448
		}
386
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
-
 
387
 
-
 
388
		$donnees['id_annuaire'] = $id_annuaire;
-
 
389
		$donnees['id_utilisateur'] = $id_utilisateur;
449
 
390
		
Line 450... Line 391...
450
		$donnees['id_annuaire'] = $id_annuaire;
391
		$verificateur = new VerificationControleur();
Line 451... Line 392...
451
		$donnees['id_utilisateur'] = $id_utilisateur;
392
		
452
		$champs =  array_merge($tableau_valeurs, $champs_metadonnees);
393
		$champs = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
Line 462... Line 403...
462
			$champs[$cle] = $verificateur->verifierEtRemplacerValeurChampPourAffichage($type,$champ ,$id_annuaire);
403
			$champs[$cle] = $verificateur->verifierEtRemplacerValeurChampPourAffichage($type,$champ ,$id_annuaire);
463
		}
404
		}
Line 464... Line 405...
464
 
405
 
Line 465... Line 406...
465
		$donnees['champs'] = $champs;
406
		$donnees['champs'] = $champs;
466
 
407
 
467
		if(Registre::getInstance()->get('est_admin')) {
408
		/*if(Registre::getInstance()->get('est_admin')) {
468
			$donnees['formulaire_blocage'] = $this->getVue(Config::get('dossier_squelettes_elements').'blocage',$donnees);
-
 
469
		}
-
 
Line 470... Line 409...
470
 
409
			$donnees['formulaire_blocage'] = $this->getVue(Config::get('dossier_squelettes_elements').'blocage',$donnees);
Line 471... Line 410...
471
		//Debug::printr($champs);
410
		}*/
472
 
411
 
Line 612... Line 551...
612
 
551
 
613
		return $fiche_contrib;
552
		return $fiche_contrib;
Line 614... Line 553...
614
	}
553
	}
615
 
554
 
616
	public function afficherFormulaireModificationInscription($id_annuaire, $id_utilisateur, $erreurs = array()) {
555
	public function afficherFormulaireModificationInscription($id_annuaire, $id_utilisateur, $erreurs = array()) {
617
 
556
		
618
		$this->chargerModele('AnnuaireModele');
557
		$this->chargerModele('AnnuaireModele');
619
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
-
 
620
 
558
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
621
		$this->chargerModele('MetadonneeModele');
559
		
622
		$donnees['aa_id_annuaire'] = $id_annuaire;
560
		$donnees['aa_id_annuaire'] = $id_annuaire;
623
 
561
		
624
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
-
 
625
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
626
 
562
		$this->chargerModele('MetadonneeModele');
627
		$valeurs_annuaire = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]);
-
 
628
		$valeurs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
-
 
629
 
-
 
630
		foreach($tableau_mappage[0] as $cle => $nom_champ) {
-
 
631
			$valeur = $valeurs_annuaire[$nom_champ] ;
-
 
632
			if($cle != 'champ_id') {
-
 
633
				$valeurs_metadonnees[$metadonnees[$tableau_mappage[1][$cle]]['amc_abreviation']] = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]) ;
-
 
634
			}
563
		$champ_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
635
		}
564
		$valeurs_metadonnees = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
636
 
565
		
637
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
566
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
638
		// pour ne charger que ce qui est nécéssaire
-
 
639
		foreach($metadonnees as $metadonnee) {
-
 
640
 
-
 
Line -... Line 567...
-
 
567
		// pour ne charger que ce qui est nécéssaire
-
 
568
		foreach($champ_metadonnees as $champ_metadonnee) {
-
 
569
 
641
			$id_champ = $metadonnee['amc_id_champ'];
570
			$id_champ = $champ_metadonnee['amc_id_champ'];
642
			$nom_champ = $metadonnee['amc_abreviation'];
571
			$nom_champ = $champ_metadonnee['amc_abreviation'];
643
 
572
			
Line 644... Line 573...
644
			if(isset($valeurs_metadonnees[$nom_champ])) {
573
			if(isset($valeurs_metadonnees[$nom_champ])) {
645
				$metadonnee['valeur_defaut'] = $valeurs_metadonnees[$nom_champ];
574
				$champ_metadonnee['valeur_defaut'] = $valeurs_metadonnees[$nom_champ];
646
			}
575
			}
Line 647... Line 576...
647
 
576
 
Line 648... Line 577...
648
			$metadonnee['aa_id_annuaire'] = $id_annuaire;
577
			$champ_metadonnee['aa_id_annuaire'] = $id_annuaire;
649
			// on charge le formulaire d'affichage de chacune des métadonnées
578
			// on charge le formulaire d'affichage de chacune des métadonnées
Line 785... Line 714...
785
 
714
 
786
		if(count($erreurs) > 0) {
715
		if(count($erreurs) > 0) {
787
			return $this->afficherFormulaireModificationInscription($id_annuaire,$id_utilisateur,$erreurs);
716
			return $this->afficherFormulaireModificationInscription($id_annuaire,$id_utilisateur,$erreurs);
Line -... Line 717...
-
 
717
		}
-
 
718
 
-
 
719
 
-
 
720
		if(isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
-
 
721
			$pays = $valeurs_mappees[$tableau_mappage[0]['champ_pays']];
-
 
722
			$valeurs_metadonnees[$tableau_mappage[1]['champ_pays']] = $pays;
-
 
723
			$pays = $this->MetadonneeModele->renvoyerCorrespondanceAbreviationId($pays);
-
 
724
			$valeurs_mappees[$tableau_mappage[0]['champ_pays']] = $pays;
-
 
725
		}
788
		}
726
 
789
 
727
 
Line 790... Line 728...
790
		$this->chargerModele('AnnuaireModele');
728
		$this->chargerModele('AnnuaireModele');
Line 791... Line 729...
791
		$modification_annuaire = $this->AnnuaireModele->modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur ,$valeurs_mappees, $tableau_mappage[0]);
729
		$modification_annuaire = $this->AnnuaireModele->modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur ,$valeurs_mappees, $tableau_mappage[0]);
-
 
730
 
-
 
731
		$nouveau_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
-
 
732
 
-
 
733
		// Si le mail a changé alors il faut appeler les applications externes pour modification
-
 
734
		if($ancien_mail != $mail_utilisateur || $tentative_changemement_mdp) {
792
 
735
 
-
 
736
			$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']];
Line 793... Line 737...
793
		$nouveau_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
737
			$prenom = $valeurs['text_'.$tableau_mappage[1]['champ_prenom']];
Line 794... Line -...
794
 
-
 
795
		// Si le mail a changé alors il faut appeler les applications externes pour modification
-
 
796
		if($ancien_mail != $mail_utilisateur) {
738
			$ancien_mail = $ancien_mail;
797
 
739
			$mail = $mail_utilisateur;
798
			$appli_controleur = new ApplicationExterneControleur();
740
			$pass = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
799
 
741
 
800
			//TODO ajouter une fonction renvoyant les infos à diffuser pour la modification
742
			$appli_controleur = new ApplicationExterneControleur();
801
			// utiliser la fonction infos Open id ?
743
 
802
			$params = array (
744
			$params = array (
803
				'id_utilisateur' => $id_utilisateur,
745
				'id_utilisateur' => $id_utilisateur,
804
				'prenom' => 'Aurelien',
746
				'prenom' => $prenom,
805
				'nom' => 'Peronnet',
747
				'nom' => $nom,
Line 806... Line 748...
806
				'mail' => $mail_utilisateur,
748
				'mail' => $mail,
Line 899... Line 841...
899
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
841
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
900
	 */
842
	 */
901
	public function afficherFormulaireOubliMotDePasse($id_annuaire) {
843
	public function afficherFormulaireOubliMotDePasse($id_annuaire) {
Line 902... Line 844...
902
 
844
 
903
		$donnees['aa_id_annuaire'] = $id_annuaire;
-
 
904
 
845
		$donnees['aa_id_annuaire'] = $id_annuaire;
905
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
846
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
Line 906... Line 847...
906
	}
847
	}
907
 
848
 
Line 954... Line 895...
954
		$donnees = array('erreurs' => array());
895
		$donnees = array('erreurs' => array());
Line 955... Line 896...
955
 
896
 
956
		$this->chargerModele('MetadonneeModele');
897
		$this->chargerModele('MetadonneeModele');
Line 957... Line 898...
957
 		$suppression_metadonnees = $this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_utilisateur);
898
 		$suppression_metadonnees = $this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_utilisateur);
958
 
899
 
959
		if(!$suppression_inscription || !$suppression_metadonnees) {
900
		/*if(!$suppression_inscription || !$suppression_metadonnees) {
960
			$donnees['erreurs']['inscription'] = $suppression_inscription;
901
			$donnees['erreurs']['inscription'] = $suppression_inscription;
Line 961... Line 902...
961
			$donnees['erreurs']['metadonnees'] = $suppression_metadonnees;
902
			$donnees['erreurs']['metadonnees'] = $suppression_metadonnees;
962
			$donnees['erreurs']['titre'] = 'Impossible de supprimer l\'inscription ';
903
			$donnees['erreurs']['titre'] = 'Impossible de supprimer l\'inscription ';
-
 
904
 
-
 
905
			return $this->getVue(Config::get('dossier_squelettes_elements').'erreurs',$donnees);
-
 
906
		}*/
-
 
907
 
-
 
908
		$params = array (
-
 
909
				'id_utilisateur' => $id_utilisateur,
-
 
910
				'prenom' => '',
-
 
911
				'nom' => '',
-
 
912
				'mail' => $mail_utilisateur,
-
 
913
				'pass' => '',
-
 
914
				'pays' => '',
Line 963... Line 915...
963
 
915
				'nouveau_pass' => '',
964
			return $this->getVue(Config::get('dossier_squelettes_elements').'erreurs',$donnees);
916
				'nouveau_mail' => ''
965
		}
917
			);
Line 966... Line 918...
966
 
918
 
967
		// on appelle les controleur de lettre actu et d'applications externes
919
		// on appelle les controleur de lettre actu et d'applications externes
968
		$appli_controleur = new ApplicationExterneControleur();
920
		$appli_controleur = new ApplicationExterneControleur();
Line 994... Line 946...
994
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
946
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
995
		// pour ne charger que ce qui est nécéssaire
947
		// pour ne charger que ce qui est nécéssaire
Line 996... Line 948...
996
 
948
 
Line 997... Line -...
997
		foreach($metadonnees as $nom_champ => $metadonnee) {
-
 
998
 
-
 
999
			//echo $nom_champ;
949
		foreach($metadonnees as $nom_champ => $metadonnee) {
1000
 
950
 
1001
			$id_champ = $metadonnee['amc_id_champ'];
951
			$id_champ = $metadonnee['amc_id_champ'];
Line 1002... Line 952...
1002
			$type_champ = $metadonnee['amc_ce_template_affichage'];
952
			$type_champ = $metadonnee['amc_ce_template_affichage'];
Line 1160... Line 1110...
1160
		if(isset($valeurs_recherchees['departement'])) {
1110
		if(isset($valeurs_recherchees['departement'])) {
1161
			$valeur = $valeurs_recherchees['departement'];
1111
			$valeur = $valeurs_recherchees['departement'];
1162
			$champ_critere = $tableau_mappage[0]['champ_code_postal'];
1112
			$champ_critere = $tableau_mappage[0]['champ_code_postal'];
1163
		}
1113
		}
Line 1164... Line -...
1164
 
-
 
1165
		//Debug::printr($valeurs_get);
-
 
1166
 
1114
 
Line 1167... Line -...
1167
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, true, $taille_page, $numero_page);
-
 
1168
 
-
 
1169
		/*
-
 
1170
		// on recherche dans les métadonnées
-
 
1171
		$this->chargerModele('MetadonneeModele');
-
 
1172
		// le résultat est un ensemble d'identifiants
-
 
1173
		$resultat_metadonnees = $this->MetadonneeModele->rechercherDansValeurMetadonnees($id_annuaire,$valeurs_recherchees, false);
-
 
1174
		*/
-
 
1175
 
-
 
1176
		// on recherche les infos dans la table annuaire mappée
-
 
1177
		// en incluant ou excluant les id déjà trouvées dans les metadonnées
-
 
1178
		// suivant le critères d'exclusivité ou non
-
 
1179
		//$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $resultat_metadonnees, $exclusive);
1115
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, true, $taille_page, $numero_page);
Line 1180... Line 1116...
1180
 
1116
 
1181
		$resultat_recherche = $resultat_annuaire_mappe;
1117
		$resultat_recherche = $resultat_annuaire_mappe;
Line 1201... Line 1137...
1201
	}
1137
	}
Line 1202... Line 1138...
1202
 
1138
 
Line -... Line 1139...
-
 
1139
 
-
 
1140
/** ---------------------------------    Fonction d'extraction d'informations utilisées par les web services -------------------------------------------*/
-
 
1141
 
-
 
1142
	public function obtenirIdParMail($id_annuaire, $mail_utilisateur) {
-
 
1143
		
-
 
1144
		$this->chargerModele('AnnuaireModele');
-
 
1145
		$id = $this->AnnuaireModele->obtenirIdParMail('1',$mail_utilisateur);
-
 
1146
		
1203
 
1147
		return $id;
Line 1204... Line 1148...
1204
/** ---------------------------------    Fonction d'extraction d'informations utilisées par les web services -------------------------------------------*/
1148
	}
Line 1205... Line 1149...
1205
 
1149
	
Line 1226... Line 1170...
1226
 
1170
 
Line 1227... Line 1171...
1227
		$champs_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
1171
		$champs_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
Line -... Line 1172...
-
 
1172
 
-
 
1173
		$valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire,$id, $champs_mappage[0]);
1228
 
1174
 
1229
		$valeurs = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire,$id, $champs_mappage[0]);
1175
		// TODO: valeurs incomplètes, voir ce qu'on renvoie obligatoirement
1230
 
1176
		// et ce qu'on ne renvoie pas
1231
		$valeurs_open_id = array('fullname' => $valeurs[$champs_mappage[0]['champ_nom']].' '.$valeurs[$champs_mappage[0]['champ_prenom']],
1177
		$valeurs_open_id = array('fullname' => $valeurs[$champs_mappage[0]['champ_nom']].' '.$valeurs[$champs_mappage[0]['champ_prenom']],
1232
                           'nickname' => $valeurs[$champs_mappage[0]['champ_nom']],
1178
                           'nickname' => $valeurs[$champs_mappage[0]['champ_nom']],
Line 1268... Line 1214...
1268
	 *
1214
	 *
1269
	 * @return boolean le succès ou l'échec de l'envoi du mail
1215
	 * @return boolean le succès ou l'échec de l'envoi du mail
1270
	 */
1216
	 */
1271
	private function envoyerMailConfirmationInscription($adresse_mail, $nom, $prenom, $code_confirmation_inscription) {
1217
	private function envoyerMailConfirmationInscription($adresse_mail, $nom, $prenom, $code_confirmation_inscription) {
Line -... Line 1218...
-
 
1218
 
-
 
1219
		$url_cette_page = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
1272
 
1220
		$base_url = new URL($url_cette_page);
1273
		$base_url = clone(Registre::getInstance()->get('base_url_application'));
-
 
1274
 
1221
		$base_url->setVariablesRequete(array());
1275
		$base_url->setVariableRequete('m','annuaire_inscription_confirmation');
1222
		$base_url->setVariableRequete('m','annuaire_inscription_confirmation');
Line 1276... Line 1223...
1276
		$base_url->setVariableRequete('id',$code_confirmation_inscription);
1223
		$base_url->setVariableRequete('id',$code_confirmation_inscription);
1277
 
1224
 
Line 1315... Line 1262...
1315
 
1262
 
Line 1316... Line 1263...
1316
		 return mail($mail,'Inscription à l\'annuaire',$contenu_mail, $entetes);
1263
		 return mail($mail,'Inscription à l\'annuaire',$contenu_mail, $entetes);
Line 1317... Line -...
1317
 
-
 
1318
	}
-
 
1319
 
-
 
1320
	/**
-
 
1321
	 * Insère les données dans la table d'inscription temporaire et crée un code de confirmation (à insérer dans le mail)
-
 
1322
	 * @param Array $valeurs les valeurs à insérer
-
 
1323
	 */
-
 
1324
	private function InsererDansTableTemporaireEtCreerCodeConfirmationInscription($valeurs) {
-
 
1325
 
-
 
1326
		// Le code de confirmation est constitué des 8 premiers caractères de l'identifiant de session
-
 
1327
		$code_confirmation = substr(session_id(), 0, 8) ;
-
 
1328
 
-
 
1329
		$this->chargerModele('AnnuaireModele');
-
 
1330
 
-
 
1331
		if(!$this->AnnuaireModele->ajouterNouvelleInscriptionTemporaire($code_confirmation, $valeurs)) {
-
 
1332
			return false;
-
 
1333
		}
-
 
1334
 
-
 
Line 1335... Line 1264...
1335
		return $code_confirmation;
1264
 
Line 1336... Line 1265...
1336
	}
1265
	}
1337
 
1266
 
Line 1462... Line 1391...
1462
				$url_page_prev->setVariableRequete('numero_page',($i));
1391
				$url_page_prev->setVariableRequete('numero_page',($i));
1463
				$url_page_prev->setVariableRequete('taille_page',($taille_page));
1392
				$url_page_prev->setVariableRequete('taille_page',($taille_page));
1464
				$url_pages[$i] = $url_page_prev->getUrl();
1393
				$url_pages[$i] = $url_page_prev->getUrl();
1465
		}
1394
		}
Line 1466... Line -...
1466
 
-
 
1467
 
-
 
1468
 
1395
 
1469
		$donnees = array('url_pages' => $url_pages, 'numero_page' => $numero_page,
1396
		$donnees = array('url_pages' => $url_pages, 'numero_page' => $numero_page,
1470
							'page_precedente' => $page_precedente, 'page_suivante' => $page_suivante,
1397
							'page_precedente' => $page_precedente, 'page_suivante' => $page_suivante,
1471
							'url_page_precedente' => $url_page_precedente, 'url_page_suivante' => $url_page_suivante,
1398
							'url_page_precedente' => $url_page_precedente, 'url_page_suivante' => $url_page_suivante,
1472
							'nombre_pages' => $nombre_pages, 'taille_page' => $taille_page);
1399
							'nombre_pages' => $nombre_pages, 'taille_page' => $taille_page);
Line 1558... Line 1485...
1558
			return true;
1485
			return true;
1559
		} else {
1486
		} else {
1560
			return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur) ;
1487
			return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur) ;
1561
		}
1488
		}
1562
	}
1489
	}
-
 
1490
	
-
 
1491
	public function obtenirValeursUtilisateur($id_annuaire, $id_utilisateur) {
-
 
1492
		
-
 
1493
		$this->chargerModele('AnnuaireModele');
-
 
1494
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
-
 
1495
 
-
 
1496
		$this->chargerModele('MetadonneeModele');
-
 
1497
 
-
 
1498
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
-
 
1499
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
1500
 
-
 
1501
		$valeurs_annuaire = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]);
-
 
1502
		$valeurs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
-
 
1503
 
-
 
1504
		foreach($tableau_mappage[0] as $cle => $nom_champ) {
-
 
1505
 
-
 
1506
			if($cle != 'champ_id') {
-
 
1507
 
-
 
1508
				$nom_champ_formulaire = $metadonnees[$tableau_mappage[1][$cle]]['amc_abreviation'];
-
 
1509
				$valeur = $valeurs_annuaire[$nom_champ] ;
-
 
1510
				
-
 
1511
				if(isset($valeurs_metadonnees[$nom_champ_formulaire])) {
-
 
1512
					if(isset($valeurs_metadonnees[$nom_champ_formulaire]['amv_valeur']) && $valeurs_metadonnees[$nom_champ_formulaire]['amv_valeur'] != '') {
-
 
1513
						$valeur = $valeurs_metadonnees[$nom_champ_formulaire]['amv_valeur'];
-
 
1514
					} 
-
 
1515
					$informations_champ = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]) ;
-
 
1516
					$valeurs_metadonnees[$nom_champ_formulaire] = array_merge($valeurs_metadonnees[$nom_champ_formulaire],$informations_champ);
-
 
1517
				} else {
-
 
1518
					$informations_champ = array('amv_valeur' => $valeur,'amc_id_champ' => $tableau_mappage[1][$cle]) ;
-
 
1519
					$valeurs_metadonnees[$nom_champ_formulaire] = $informations_champ;
-
 
1520
				}
-
 
1521
			}
-
 
1522
		}
-
 
1523
		
-
 
1524
		return $valeurs_metadonnees;
-
 
1525
	}
-
 
1526
	
-
 
1527
	public function obtenirTableauDerniersInscrits($id_annuaire, $limite = '20') {
-
 
1528
		
-
 
1529
		// Chargement des informations de l'utilisateur dans la table annuaire principale
-
 
1530
		$this->chargerModele('AnnuaireModele');
-
 
1531
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
-
 
1532
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
1533
		$this->chargerModele('AnnuaireModele');
-
 
1534
		$tableau_ids = $this->AnnuaireModele->obtenirTableauIdsUtilisateurs($id_annuaire, $tableau_mappage[0]);
-
 
1535
		
-
 
1536
		$derniers_inscrits = array();
-
 
1537
		
-
 
1538
		foreach($tableau_ids as $id) {
-
 
1539
			
-
 
1540
			$id_utilisateur = $id[$tableau_mappage[0][champ_id]];
-
 
1541
			$derniers_inscrits[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
-
 
1542
		}
-
 
1543
		
-
 
1544
		return $derniers_inscrits;
-
 
1545
	}
Line 1563... Line 1546...
1563
 
1546
 
Line 1564... Line 1547...
1564
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones) {
1547
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones) {
1565
 
1548