Subversion Repositories Applications.annuaire

Rev

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

Rev 52 Rev 55
Line 73... Line 73...
73
	public function obtenirChampsMappageAnnuaire($id_annuaire) {
73
	public function obtenirChampsMappageAnnuaire($id_annuaire) {
Line 74... Line 74...
74
 
74
 
Line 75... Line 75...
75
		$tableau_mappage = array();
75
		$tableau_mappage = array();
76
 
76
 
Line 77... Line 77...
77
		$requete_champs_mappage = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
77
		$requete_champs_mappage = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
Line 78... Line 78...
78
		"AND at_action IN ('champ_id', 'champ_mail', 'champ_nom', 'champ_prenom', 'champ_pass', 'champ_lettre', 'champ_code_postal', 'champ_ville')";
78
		"AND at_action IN ('champ_id', 'champ_mail', 'champ_nom', 'champ_prenom', 'champ_pass', 'champ_lettre','champ_pays', 'champ_code_postal', 'champ_ville')";
Line 88... Line 88...
88
		foreach ($resultat_champs_mappage as  $champ) {
88
		foreach ($resultat_champs_mappage as  $champ) {
89
			$tableau_mappage[0][$champ['at_action']] = $champ['at_ressource'];
89
			$tableau_mappage[0][$champ['at_action']] = $champ['at_ressource'];
90
			$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur'];
90
			$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur'];
91
		}
91
		}
Line -... Line 92...
-
 
92
 
-
 
93
		//echo Debug::printr($tableau_mappage);
92
 
94
 
Line 93... Line 95...
93
		// TODO faire une interface de gestion des champs de mappage
95
		// TODO faire une interface de gestion des champs de mappage
94
 
96
 
Line 119... Line 121...
119
		foreach ($resultat_champs_obligatoire as  $champ) {
121
		foreach ($resultat_champs_obligatoire as  $champ) {
120
			// le tableau des champs obligatoires se présente sous la forme nom_champ_metadonnee => nom_champ_annuaire
122
			// le tableau des champs obligatoires se présente sous la forme nom_champ_metadonnee => nom_champ_annuaire
121
			$tableau_obligatoire[$champ['at_valeur']] = $champ['at_ressource'];
123
			$tableau_obligatoire[$champ['at_valeur']] = $champ['at_ressource'];
122
		}
124
		}
Line 123... Line 125...
123
 
125
 
124
		// TODO faire une interface de gestion des champs de mappage
126
		// TODO faire une interface de gestion des champs obligatoires
125
		return $tableau_obligatoire ;
127
		return $tableau_obligatoire ;
Line 126... Line 128...
126
	}
128
	}
127
 
129
 
Line 176... Line 178...
176
 
178
 
177
		// TODO faire une interface de gestion des champs de mappage
179
		// TODO faire une interface de gestion des champs de mappage
178
		return $champ_avatar ;
180
		return $champ_avatar ;
Line -... Line 181...
-
 
181
	}
-
 
182
 
-
 
183
	 /** Renvoie l'identifiant du champ associé à l'image de profil (Avatar) dans un annuaire donné
-
 
184
	 * @param int $id_annuaire l'identifiant de l'annuaire
-
 
185
	 * @return string l'identifiant du champ date inscription dans l'annuaire donné ou false s'il n'en existe pas
-
 
186
	 */
-
 
187
	/*public function obtenirChampDate($id_annuaire) {
-
 
188
 
-
 
189
		$requete_champs_avatar = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
-
 
190
		"AND at_action = 'champ_avatar'";
-
 
191
 
-
 
192
		$champ_avatar = $resultat_champs_avatar['at_valeur'];
-
 
193
 
-
 
194
		// TODO faire une interface de gestion des champs de mappage
-
 
195
		return $champ_avatar ;
-
 
196
	}*/
-
 
197
 
-
 
198
	/**
-
 
199
	 * Charge tous les champs de description de l'annuaire
-
 
200
	 * @param int $id_annuaire l'identifiant de l'annuaire
-
 
201
	 * @return array un tableau contenant les noms de champs mappés et les ids des champs métadonnées correspondants
-
 
202
	 */
-
 
203
	public function obtenirChampsDescriptionAnnuaire($id_annuaire) {
-
 
204
 
-
 
205
		$tableau_mappage = array();
-
 
206
 
-
 
207
		$requete_champs_mappage = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire);
-
 
208
 
-
 
209
		$resultat_champs_mappage = $this->requeteTous($requete_champs_mappage);
-
 
210
 
-
 
211
		$tableau_mappage = array();
-
 
212
 
-
 
213
		if(!$resultat_champs_mappage) {
-
 
214
			trigger_error('impossible de récupérer les champs décrivant l\'annuaire '.$id_annuaire);
-
 
215
		}
-
 
216
 
-
 
217
		foreach ($resultat_champs_mappage as  $champ) {
-
 
218
			$tableau_mappage[0][$champ['at_action']] = $champ['at_ressource'];
-
 
219
			$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur'];
-
 
220
		}
-
 
221
 
-
 
222
		// TODO faire une interface de gestion des champs de mappage
-
 
223
 
-
 
224
		return $tableau_mappage ;
179
	}
225
	}
180
 
226
 
181
	/** Charge le nombre d'inscrits d'une table annuaire mappée
227
	/** Charge le nombre d'inscrits d'une table annuaire mappée
182
	 * @param int $identifiant l'identifiant de l'annuaire mappé
228
	 * @param int $identifiant l'identifiant de l'annuaire mappé
183
	 * @return int le nombre d'inscrits à un annuaire donné
229
	 * @return int le nombre d'inscrits à un annuaire donné
Line 470... Line 516...
470
		}
516
		}
Line 471... Line 517...
471
 
517
 
472
		// le mail est censé être unique donc on l'utilise pour faire une selection pour retrouver l'enregistrement
518
		// le mail est censé être unique donc on l'utilise pour faire une selection pour retrouver l'enregistrement
473
		// (Les requetes du style SELECT MAX(id)... ne garantissent pas qu'on récupère le bon id
519
		// (Les requetes du style SELECT MAX(id)... ne garantissent pas qu'on récupère le bon id
-
 
520
		// si une autre insertion a eu lieu entre temps)
474
		// si une autre insertion a eu lieu entre temps)
521
		// TODO utiliser du PDO pur et utiliser les fonctions last_insert_id générique
475
		$requete_nouvel_id = 	'SELECT '.$nom_champs['champ_id'].' '.
522
		$requete_nouvel_id = 	'SELECT '.$nom_champs['champ_id'].' '.
476
								'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
523
								'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
477
								'WHERE '.
524
								'WHERE '.
Line 535... Line 582...
535
			return true;
582
			return true;
536
		}
583
		}
Line 537... Line 584...
537
 
584
 
Line -... Line 585...
-
 
585
	}
-
 
586
 
-
 
587
	public function obtenirValeurChampAnnuaireMappe($id_annuaire, $id_utilisateur, $champ) {
-
 
588
 
-
 
589
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
590
		// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
-
 
591
		$champs_mappage = $champs_mappage[0];
-
 
592
 
-
 
593
		$requete_infos_annuaire = 'SELECT * '.
-
 
594
					'FROM annu_annuaire '.
-
 
595
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
-
 
596
 
-
 
597
		$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire);
-
 
598
 
-
 
599
		// en cas d'erreur on renvoie false
-
 
600
		// TODO: lever une exception
-
 
601
		if(!$resultat_infos_annuaire) {
-
 
602
			return false;
-
 
603
		}
-
 
604
 
-
 
605
		$champs_mappage_str = implode(',',$champs_mappage);
-
 
606
		$id_utilisateur = $this->proteger($id_utilisateur);
-
 
607
 
-
 
608
		$requete_selection_valeur = 'SELECT '.$champs_mappage[$champ].' as '.$champ.' '.
-
 
609
										 'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
610
										 'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur;
-
 
611
 
-
 
612
		$resultat_selection_valeur = $this->requeteUn($requete_selection_valeur);
-
 
613
 
-
 
614
		// en cas d'erreur on renvoie false
-
 
615
		// TODO: lever une exception
-
 
616
		if(!$resultat_selection_valeur) {
-
 
617
			return false;
-
 
618
		} else {
-
 
619
			return $resultat_selection_valeur[$champ];
-
 
620
		}
-
 
621
	}
-
 
622
 
-
 
623
	public function modifierValeurChampAnnuaireMappe($id_annuaire, $id_utilisateur, $champ, $valeur) {
-
 
624
 
-
 
625
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
626
		// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
-
 
627
		$champs_mappage = $champs_mappage[0];
-
 
628
 
-
 
629
		$requete_infos_annuaire = 'SELECT * '.
-
 
630
					'FROM annu_annuaire '.
-
 
631
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
-
 
632
 
-
 
633
		$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire);
-
 
634
 
-
 
635
		// en cas d'erreur on renvoie false
-
 
636
		// TODO: lever une exception
-
 
637
		if(!$resultat_infos_annuaire) {
-
 
638
			return false;
-
 
639
		}
-
 
640
 
-
 
641
		$champs_mappage_str = implode(',',$champs_mappage);
-
 
642
		$id_utilisateur = $this->proteger($id_utilisateur);
-
 
643
		$valeur = $this->proteger($valeur);
-
 
644
 
-
 
645
		$requete_modification_valeur = 'UPDATE '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
646
										 'SET '.$champ.' = '.$valeur.' '.
-
 
647
										 'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur;
-
 
648
 
-
 
649
 
-
 
650
		$resultat_modification_valeur = $this->requeteUn($requete_modification_valeur);
-
 
651
 
-
 
652
		// en cas d'erreur on renvoie false
-
 
653
		// TODO: lever une exception
-
 
654
		return $resultat_modification_valeur;
538
	}
655
	}
539
 
656
 
540
	/**
657
	/**
541
	 * Renvoie le mail associé à l'identifiant d'un utilisateur dans un annuaire donné
658
	 * Renvoie le mail associé à l'identifiant d'un utilisateur dans un annuaire donné
542
	 * @param int $id_annuair l'identifiant de l'annuaire
659
	 * @param int $id_annuair l'identifiant de l'annuaire
Line 676... Line 793...
676
			return $resultat_selection_utilisateur[$champs_mappage['champ_id']];
793
			return $resultat_selection_utilisateur[$champs_mappage['champ_id']];
677
		}
794
		}
Line 678... Line 795...
678
 
795
 
Line -... Line 796...
-
 
796
	}
-
 
797
 
-
 
798
	// TODO: commenter
-
 
799
	public function comparerIdentifiantMotDePasse($id_annuaire, $id_utilisateur, $mot_de_passe) {
-
 
800
 
-
 
801
		$requete_infos_annuaire = 'SELECT * '.
-
 
802
					'FROM annu_annuaire '.
-
 
803
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
-
 
804
 
-
 
805
		$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire);
-
 
806
 
-
 
807
		// en cas d'erreur on renvoie false
-
 
808
		// TODO: lever une exception
-
 
809
		if(!$resultat_infos_annuaire) {
-
 
810
			return false;
-
 
811
		}
-
 
812
 
-
 
813
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
814
		// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
-
 
815
		$champs_mappage = $champs_mappage[0];
-
 
816
 
-
 
817
		$mot_de_passe = $this->proteger($mot_de_passe);
-
 
818
		$id_utilisateur = $this->proteger($id_utilisateur);
-
 
819
 
-
 
820
		$requete_selection_utilisateur = 'SELECT COUNT(*) as match_login_mdp '.
-
 
821
										 'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
822
										 'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur.' '.
-
 
823
										 'AND '.$champs_mappage['champ_pass'].' = '.$mot_de_passe;
-
 
824
 
-
 
825
		$resultat_selection_utilisateur = $this->requeteUn($requete_selection_utilisateur);
-
 
826
 
-
 
827
		// en cas d'erreur ou bien si le login ne matche pas le mot de passe
-
 
828
		// on renvoie false
-
 
829
		if(!$resultat_selection_utilisateur || $resultat_selection_utilisateur['match_login_mdp'] <= 0) {
-
 
830
			return false;
-
 
831
		} else {
-
 
832
			return true;
-
 
833
		}
679
	}
834
	}
680
 
835
 
681
	/**
836
	/**
682
	 * Récupère les champs demandé dans l'annuaire indiqué
837
	 * Récupère les champs demandé dans l'annuaire indiqué
683
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
838
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
Line 834... Line 989...
834
		}
989
		}
Line 835... Line 990...
835
 
990
 
836
		$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
991
		$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
837
					'FROM  annu_annuaire '.
992
					'FROM  annu_annuaire '.
-
 
993
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
838
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
994
 
Line 839... Line 995...
839
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
995
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
840
 
996
 
841
		$requete_recherche_inscrits = 'SELECT * '.
997
		$requete_recherche_inscrits = 'SELECT * '.
Line 875... Line 1031...
875
 
1031
 
Line 876... Line 1032...
876
		$requete_conditions_inscrits = rtrim($requete_conditions_inscrits, $separateur);
1032
		$requete_conditions_inscrits = rtrim($requete_conditions_inscrits, $separateur);
Line -... Line 1033...
-
 
1033
 
-
 
1034
		$requete_recherche_inscrits .= $requete_conditions_inscrits;
-
 
1035
 
-
 
1036
		if(trim($requete_conditions_inscrits) == '') {
877
 
1037
 
878
		$requete_recherche_inscrits .= $requete_conditions_inscrits;
1038
		}
Line 879... Line 1039...
879
 
1039
 
-
 
1040
		$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].
880
		$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].
1041
				' WHERE '.$requete_conditions_inscrits;
881
				' WHERE '.$requete_conditions_inscrits;
1042
 
882
 
1043
		$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits);
883
		$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits);
1044
 
Line 884... Line 1045...
884
		$nb_inscrits = 0;
1045
		$nb_inscrits = 0;
-
 
1046
		if($resultat_nb_inscrits) {
885
		if($resultat_nb_inscrits) {
1047
			$nb_inscrits = $resultat_nb_inscrits['nb'];
Line 886... Line 1048...
886
			$nb_inscrits = $resultat_nb_inscrits['nb'];
1048
		}
887
		}
1049
 
888
 
1050
		$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page);