| 1 | <?php |
| 2 | |
| 3 | require_once 'xnet.inc.php'; |
| 4 | require_once 'lists.inc.php'; |
| 5 | require_once 'xnet/mail.inc.php'; |
| 6 | |
| 7 | if (!Env::has('liste')) { |
| 8 | redirect('annuaire-admin.php'); |
| 9 | } |
| 10 | $liste = Env::get('liste'); |
| 11 | |
| 12 | new_groupadmin_page('xnet/groupe/listes-sync.tpl'); |
| 13 | |
| 14 | $client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $globals->asso('mail_domain')); |
| 15 | |
| 16 | if (Env::has('add')) { |
| 17 | $client->mass_subscribe($liste, array_keys(Env::getMixed('add'))); |
| 18 | } |
| 19 | |
| 20 | list(,$members) = $client->get_members($liste); |
| 21 | $mails = array_map(create_function('$arr', 'return $arr[1];'), $members); |
| 22 | $subscribers = array_unique(array_merge($subscribers, $mails)); |
| 23 | |
| 24 | $not_in_group_x = array(); |
| 25 | $not_in_group_ext = array(); |
| 26 | |
| 27 | $ann = $globals->xdb->iterator( |
| 28 | "SELECT IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom, |
| 29 | IF(m.origine='X',u.prenom,m.prenom) AS prenom, |
| 30 | IF(m.origine='X',u.promo,'extérieur') AS promo, |
| 31 | IF(m.origine='X',CONCAT(a.alias, '@polytechnique.org'),m.email) AS email, |
| 32 | IF(m.origine='X',FIND_IN_SET('femme', u.flags),0) AS femme, |
| 33 | m.perms='admin' AS admin, |
| 34 | m.origine='X' AS x |
| 35 | FROM groupex.membres AS m |
| 36 | LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid ) |
| 37 | LEFT JOIN aliases AS a ON ( a.id = m.uid AND a.type='a_vie' ) |
| 38 | WHERE m.asso_id = {?}", $globals->asso('id')); |
| 39 | |
| 40 | $not_in_list = array(); |
| 41 | |
| 42 | while ($tmp = $ann->next()) { |
| 43 | if (!in_array($tmp['email'], $subscribers)) { |
| 44 | $not_in_list[] = $tmp; |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | $page->assign('not_in_list', $not_in_list); |
| 49 | $page->run(); |
| 50 | |
| 51 | ?> |