| 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);
|