X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fwebservices%2Fmanageurs.server.inc.php;h=304c5a68b6043df9d152665bc3fc27ad285e07b4;hb=887aaf13c7ef345d8360a12b8c5fb0e6a7c4358d;hp=562f402d6af3979bbc4be688cc0909a4ead656e1;hpb=aef0283bdf24c94d640a16ccac08191980ae7a25;p=platal.git diff --git a/include/webservices/manageurs.server.inc.php b/include/webservices/manageurs.server.inc.php index 562f402..304c5a6 100644 --- a/include/webservices/manageurs.server.inc.php +++ b/include/webservices/manageurs.server.inc.php @@ -15,7 +15,6 @@ $error_key = "You didn't provide me with a valid cipher key..."; // IF YOU HAVE TO MAKE SOME MODIFICATION, FIRST CONTACT: // admin@manageurs.com function get_annuaire_infos($method, $params) { - require "geocoding.inc.php"; global $error_mat, $error_key, $globals; // Password verification. @@ -31,35 +30,38 @@ function get_annuaire_infos($method, $params) { if(!empty($params[1])) { // We only retrieve addresses when required. if(!isset($params[2])) { - $res = XDB::iterRow( - "SELECT ph.display_tel AS cell, a.naissance AS age - FROM auth_user_md5 AS a - INNER JOIN auth_user_quick AS q USING (user_id) - LEFT JOIN profile_phones AS ph ON (ph.uid = a.user_id AND link_type='user' AND tel_type = 'mobile') - WHERE a.matricule = {?} LIMIT 1", $params[1]); + $res = XDB::iterRow("SELECT pp.display_tel AS cell, p.birthdate AS age + FROM profiles AS p + LEFT JOIN profile_phones AS pp ON (pp.pid = p.pid AND pp.link_type = 'user' + AND pp.tel_type = 'mobile') + WHERE p.xorg_id = {?} LIMIT 1", + $params[1]); $array = $res->next(); } else { - $res = XDB::iterRow( - "SELECT a.naissance, addr.text, addr.postalCode, - l.name, addr.countryId, addr.pid, addr.id - FROM auth_user_md5 AS a - INNER JOIN auth_user_quick AS q USING (user_id) - LEFT JOIN profile_addresses AS addr ON(adr.pid = a.user_id) - LEFT JOIN geoloc_localities AS l ON (l.id = addr.localityId) - WHERE a.matricule = {?} AND - NOT FIND_IN_SET('pro', adr.statut) - ORDER BY NOT FIND_IN_SET('active', adr.statut), - FIND_IN_SET('res-secondaire', adr.statut), - NOT FIND_IN_SET('courrier', adr.statut)", $params[1]); + $res = XDB::iterRow("SELECT p.birthdate, pa.text, GROUP_CONCAT(pace3.short_name), GROUP_CONCAT(pace2.short_name), + GROUP_CONCAT(pace1.short_name), p.pid, pa.id + FROM profiles AS p + LEFT JOIN profile_addresses AS pa ON (pa.pid = p.pid) + LEFT JOIN profile_addresses_components AS pc ON (pa.pid = pc.pid AND pa.jobid = pc.jobid AND pa.groupid = pc.groupid + AND pa.type = pc.type AND pa.id = pc.id) + LEFT JOIN profile_addresses_components_enum AS pace1 ON (FIND_IN_SET(\'country\', pace1.types) AND pace1.id = pc.component_id) + LEFT JOIN profile_addresses_components_enum AS pace2 ON (FIND_IN_SET(\'locality\', pace2.types) AND pace2.id = pc.component_id) + LEFT JOIN profile_addresses_components_enum AS pace3 ON (FIND_IN_SET(\'postal_code\', pace3.types) AND pace3.id = pc.component_id) + WHERE p.xorg_id = {?} AND NOT FIND_IN_SET('job', pa.flags) + ORDER BY NOT FIND_IN_SET('current', pa.flags), + FIND_IN_SET('secondary', pa.flags), + NOT FIND_IN_SET('mail', pa.flags) + GROUP BY pa.pid, pa.jobid, pa.groupid, pa.id, pa.type", + $params[1]); // Process the addresses we got. if(list($age, $text, $adr['cp'], $adr['ville'], - $adr['pays'], $uid, $adr['adrid']) = $res->next()) { + $adr['pays'], $pid, $adr['adrid']) = $res->next()) { list($adr['adr1'], $adr['adr2'], $adr['adr3']) = explode("\n", Geocoder::getFirstLines($text, $adr['cp'], 3)); $sql = XDB::query("SELECT display_tel FROM profile_phones - WHERE uid = {?} AND link_type = 'user' AND tel_type = 'mobile' - LIMIT 1", $uid); + WHERE pid = {?} AND link_type = 'user' AND tel_type = 'mobile' + LIMIT 1", $pid); if ($sql->numRows() > 0) { $array['cell'] = $sql->fetchOneCell(); } else { @@ -96,12 +98,12 @@ function get_annuaire_infos($method, $params) { foreach ($array['adresse'] as $i => $a) { $adrid_index[$a['adrid']] = $i; } - $restel = XDB::iterator( - "SELECT t.display_tel AS tel, t.tel_type, t.link_id as adrid - FROM profile_phones AS t - INNER JOIN profile_addresses AS a ON (t.link_id = a.id AND t.uid = a.pid) - WHERE t.uid = {?} AND t.link_type = 'address' - AND NOT FIND_IN_SET('pro', a.statut)", $uid); + $restel = XDB::iterator("SELECT pp.display_tel AS tel, pp..tel_type, pp.link_id as adrid + FROM profile_phones AS pp + INNER JOIN profile_addresses AS pa ON (pp.link_id = pa.id AND pp.pid = pa.pid) + WHERE pp.pid = {?} AND pp.link_type = 'address' + AND NOT FIND_IN_SET('pro', pa.statut)", + $pid); while ($tel = $restel->next()) { $array['adresse'][$adrid_index[$tel['adrid']]]['tels'][] = $tel; } @@ -177,14 +179,18 @@ function get_nouveau_infos($method, $params) { } // We check we actually have an identification number. if(!empty($params[1])) { - $res = XDB::query( - "SELECT a.nom, a.nom_usage,a.prenom, FIND_IN_SET('femme', a.flags) as femme, - a.deces!= 0 as decede, a.naissance, a.promo, concat(al.alias, '@m4x.org') as mail - FROM auth_user_md5 AS a - INNER JOIN aliases AS al ON (a.user_id = al.id) - WHERE al.flags = 'bestalias' AND a.matricule = {?}",$params[1]); - $data=$res->fetchOneAssoc(); - //$data['mail'].='@polytechnique.org'; + $res = XDB::query("SELECT ppn.lastname_initial AS nom, ppn.lastname_ordinary AS nom_usage, ppn.firstname_initial AS prenom, + p.sex = 'female' AS femme, p.deathdate IS NOT NULL AS decede, + p.birthdate, pd.promo, CONCAT(e.email, '@', d.name) AS mail + FROM profiles AS p + INNER JOIN account_profiles AS ap ON (p.pid = ap.pid AND FIND_IN_SET('owner', perms) + INNER JOIN email_source_account AS s ON (s.uid = ap.uid AND FIND_IN_SET('bestalias', s.flags)) + INNER JOIN email_virtual_domains AS d ON (s.domain = s.id) + INNER JOIN profile_display AS pd PN (p.pid = pd.pid) + INNER JOIN profile_public_names AS ppn ON (ppn.pid = p.pid) + WHERE a.flags = 'bestalias' AND p.xorg_id = {?}", + $params[1]); + // $data['mail'] .= '@polytechnique.org'; // We start the encryption of the data. @@ -203,5 +209,5 @@ function get_nouveau_infos($method, $params) { return $reply; } -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>