I think JMY will be happy :
[platal.git] / htdocs.net / groupe / listes-sync.php
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 header('Location: 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 ?>