From 4e310c610ea61675a850a76a315aa7bb0878f04a Mon Sep 17 00:00:00 2001 From: x2000habouzit Date: Fri, 14 Jul 2006 20:45:15 +0000 Subject: [PATCH] migrate annuaire-admin git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@487 839d8a87-29fc-0310-9880-83ba4fa771e5 --- htdocs.net/groupe/annuaire-admin.php | 47 -------------------------------- htdocs.net/groupe/listes-sync.php | 2 +- modules/xnetgrp.php | 52 ++++++++++++++++++++++++++++++++++++ templates/xnet/groupe/annuaire.tpl | 2 +- 4 files changed, 54 insertions(+), 49 deletions(-) delete mode 100644 htdocs.net/groupe/annuaire-admin.php diff --git a/htdocs.net/groupe/annuaire-admin.php b/htdocs.net/groupe/annuaire-admin.php deleted file mode 100644 index 91c7b41..0000000 --- a/htdocs.net/groupe/annuaire-admin.php +++ /dev/null @@ -1,47 +0,0 @@ -asso('mail_domain')); -$lists = $client->get_lists(); -if (!$lists) $lists = array(); -$listes = array_map(create_function('$arr', 'return $arr["list"];'), $lists); - -$subscribers = array(); - -foreach ($listes as $list) { - list(,$members) = $client->get_members($list); - $mails = array_map(create_function('$arr', 'return $arr[1];'), $members); - $subscribers = array_unique(array_merge($subscribers, $mails)); -} - -$not_in_group_x = array(); -$not_in_group_ext = array(); - -foreach ($subscribers as $mail) { - $res = $globals->xdb->query( - 'SELECT COUNT(*) - FROM groupex.membres AS m - LEFT JOIN auth_user_md5 AS u ON (m.uid=u.user_id AND m.uid<50000) - LEFT JOIN aliases AS a ON (a.id=u.user_id and a.type="a_vie") - WHERE asso_id = {?} AND - (m.email = {?} OR CONCAT(a.alias, "@polytechnique.org") = {?})', - $globals->asso('id'), $mail, $mail); - if ($res->fetchOneCell() == 0) { - if (strstr($mail, '@polytechnique.org') === false) { - $not_in_group_ext[] = $mail; - } else { - $not_in_group_x[] = $mail; - } - } -} - -$page->assign('not_in_group_ext', $not_in_group_ext); -$page->assign('not_in_group_x', $not_in_group_x); -$page->assign('lists', $lists); -$page->run(); - -?> diff --git a/htdocs.net/groupe/listes-sync.php b/htdocs.net/groupe/listes-sync.php index 64fe068..9c97ed7 100644 --- a/htdocs.net/groupe/listes-sync.php +++ b/htdocs.net/groupe/listes-sync.php @@ -5,7 +5,7 @@ require_once 'lists.inc.php'; require_once 'xnet/mail.inc.php'; if (!Env::has('liste')) { - redirect('annuaire-admin.php'); + redirect('admin/annuaire'); } $liste = Env::get('liste'); diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index e6df708..8fc8628 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -30,6 +30,9 @@ class XnetGrpModule extends PLModule 'grp/edit' => $this->make_hook('edit', AUTH_MDP), 'grp/mail' => $this->make_hook('mail', AUTH_MDP), 'grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP), + + 'grp/admin/annuaire' + => $this->make_hook('admin_annuaire', AUTH_MDP), ); } @@ -268,6 +271,55 @@ class XnetGrpModule extends PLModule $page->assign('ann', $ann); } + + function handler_admin_annuaire(&$page) + { + global $globals; + + require_once 'lists.inc.php'; + require_once 'xnet/mail.inc.php'; + + new_groupadmin_page('xnet/groupe/annuaire-admin.tpl'); + $client =& lists_xmlrpc(Session::getInt('uid'), + Session::get('password'), + $globals->asso('mail_domain')); + $lists = $client->get_lists(); + if (!$lists) $lists = array(); + $listes = array_map(create_function('$arr', 'return $arr["list"];'), $lists); + + $subscribers = array(); + + foreach ($listes as $list) { + list(,$members) = $client->get_members($list); + $mails = array_map(create_function('$arr', 'return $arr[1];'), $members); + $subscribers = array_unique(array_merge($subscribers, $mails)); + } + + $not_in_group_x = array(); + $not_in_group_ext = array(); + + foreach ($subscribers as $mail) { + $res = $globals->xdb->query( + 'SELECT COUNT(*) + FROM groupex.membres AS m + LEFT JOIN auth_user_md5 AS u ON (m.uid=u.user_id AND m.uid<50000) + LEFT JOIN aliases AS a ON (a.id=u.user_id and a.type="a_vie") + WHERE asso_id = {?} AND + (m.email = {?} OR CONCAT(a.alias, "@polytechnique.org") = {?})', + $globals->asso('id'), $mail, $mail); + if ($res->fetchOneCell() == 0) { + if (strstr($mail, '@polytechnique.org') === false) { + $not_in_group_ext[] = $mail; + } else { + $not_in_group_x[] = $mail; + } + } + } + + $page->assign('not_in_group_ext', $not_in_group_ext); + $page->assign('not_in_group_x', $not_in_group_x); + $page->assign('lists', $lists); + } } ?> diff --git a/templates/xnet/groupe/annuaire.tpl b/templates/xnet/groupe/annuaire.tpl index 9e5358b..76ea884 100644 --- a/templates/xnet/groupe/annuaire.tpl +++ b/templates/xnet/groupe/annuaire.tpl @@ -37,7 +37,7 @@ Fonctionnalit {/if} -- 2.1.4