25cb1864496b838fb7194966aefaa2391803d867
[platal.git] / include / webservices / manageurs.server.inc.php
1 <?php
2
3 require_once('webservices/manageurs.inc.php');
4
5 $error_mat = "You didn't provide me with a valid matricule number...";
6 $error_key = "You didn't provide me with a valid cipher key...";
7 /**
8 le premier parametre doit etre le matricule
9 le second parametre facultatif doit etre le numero de l'adresse voulue :
10 -1 => on ne veut pas d'adresse
11 0 => on veut toutes les adresses
12 n => on veut l'adresse numero n
13
14 IL NE FAUT PAS CHANGER LES NOMS DES CHAMPS DE ADRESSES
15 S'IL Y A DES MODIFS A FAIRE VOIR AVEC MANAGEURS admin@manageurs.com
16 */
17 function get_annuaire_infos($method, $params) {
18 global $error_mat, $error_key, $globals;
19
20 //verif du mdp
21 if(!isset($params[0]) || ($params[0] != $globals->manageurs->manageurs_pass)){return false;}
22 //si on a adresse == -1 => on ne recupère aucune adresse
23 if(isset($params[2]) && ($params[2] == -1)) unset($params[2]);
24
25
26 if( !empty($params[1]) ){ // on verifie qu'on a bien un matricule
27
28 //on ne recupere pas les adresses inutilement
29 if(!isset($params[2])){
30 $res = $globals->xdb->iterRow(
31 "SELECT q.profile_mobile AS cell, a.naissance AS age
32 FROM auth_user_md5 AS a
33 INNER JOIN auth_user_quick AS q USING (user_id)
34 WHERE a.matricule = {?}", $params[1]);
35 }
36 else{
37 $res = $globals->xdb->iterRow(
38 "SELECT q.profile_mobile AS cell, a.naissance AS age,
39 adr.adr1, adr.adr2, adr.adr3,
40 adr.postcode, adr.city, adr.country,
41 adr.tel, adr.fax
42 FROM auth_user_md5 AS a
43 INNER JOIN auth_user_quick AS q USING (user_id)
44 LEFT JOIN adresses AS adr ON(adr.uid = a.user_id)
45 WHERE a.matricule = {?} AND
46 NOT FIND_IN_SET('pro', adr.statut)
47 ORDER BY NOT FIND_IN_SET('active', adr.statut),
48 FIND_IN_SET('res-secondaire', adr.statut),
49 NOT FIND_IN_SET('courrier', adr.statut)", $params[1]);
50
51 }
52
53 //traitement des adresss si necessaire
54 if (isset($params[2])) {
55 if(list($cell, $age, $adr['adr1'], $adr['adr2'], $adr['adr3'], $adr['cp'], $adr['ville'],
56 $adr['pays'], $adr['tel'], $adr['fax']) = $res->next())
57 {
58 $array['cell'] = $cell;
59 $array['age'] = $age;
60 $array['adresse'][] = $adr;
61
62 //on clamp le numero au nombre d'adresses dispo
63 $adresse = min((int) $params[2], $res->total());
64
65 if ($adresse != 1) { //on ne veut pas la premiere adresse
66 $i = 2;
67 while(list($cell, $age, $adr['adr1'], $adr['adr2'], $adr['adr3'], $adr['cp'], $adr['ville'],
68 $adr['pays'], $adr['tel'], $adr['fax']) = $res->next())
69 {
70 if($adresse == $i){//si on veut cette adresse en particulier
71 $array['adresse'][0] = $adr;
72 //$res->free();
73 break;
74 }
75 elseif($adresse == 0){//si on veut toutes les adresses
76 $array['adresse'][] = $adr;
77 }
78 $i++;
79 }
80 }
81 }
82 else{
83 $array = false;
84 }
85 }
86 else { //cas où on ne veut pas d'adresse
87 $array = $res->next();
88 }
89
90
91 if ($array) { // on a bien eu un résultat : le matricule etait bon
92
93 //on n'envoit que l'age à manageurs le format est YYYY-MM-DD 0123-56-89
94 $year = (int) substr($array['age'],0,4);
95 $month = (int) substr($array['age'],5,2);
96 $day = (int) substr($array['age'],8,2);
97 $age = (int) date('Y') - $year - 1;
98 if(( $month < (int)date('m')) ||
99 (($month == (int)date('m')) && ($day >= (int)date('d'))))
100 {
101 $age += 1;
102 }
103 $array['age'] = $age;
104
105 //on commence le cryptage des donnees
106 if (manageurs_encrypt_init($params[1]) == 1) {//on a pas trouve la cle pour crypter
107 $args = array("erreur" => 3, "erreurstring" => $error_key);
108 $reply = xmlrpc_encode_request(NULL,$args);
109 } else {
110 $reply = manageurs_encrypt_array($array);
111 manageurs_encrypt_close();
112 }
113 } else {//le matricule n'etait pas valide
114 $args = array("erreur" => 2, "erreurstring" => $erreur_mat);
115 $reply = xmlrpc_encode_request(NULL,$args);
116 }
117 } else {//le matricule n'etait pas en argument
118 $args = array("erreur" => 1, "erreurstring" => $error_mat);
119 $reply = xmlrpc_encode_request(NULL,$args);
120 }
121 return $reply;
122 }
123
124 ?>