migrate annuaire-admin
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 14 Jul 2006 20:45:15 +0000 (20:45 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 14 Jul 2006 20:45:15 +0000 (20:45 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@487 839d8a87-29fc-0310-9880-83ba4fa771e5

htdocs.net/groupe/annuaire-admin.php [deleted file]
htdocs.net/groupe/listes-sync.php
modules/xnetgrp.php
templates/xnet/groupe/annuaire.tpl

diff --git a/htdocs.net/groupe/annuaire-admin.php b/htdocs.net/groupe/annuaire-admin.php
deleted file mode 100644 (file)
index 91c7b41..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-require_once 'xnet.inc.php';
-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);
-$page->run();
-
-?>
index 64fe068..9c97ed7 100644 (file)
@@ -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');
 
index e6df708..8fc8628 100644 (file)
@@ -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);
+    }
 }
 
 ?>
index 9e5358b..76ea884 100644 (file)
@@ -37,7 +37,7 @@ Fonctionnalit
 <ul class="descr">
   <li><a href="membres-edit.php?new=x">Ajouter un membre X</a></li>
   <li><a href="membres-edit.php?new=ext">Ajouter un membre extérieur</a></li>
-  <li><a href="annuaire-admin.php">Synchroniser annuaire et Listes de diffusion</a></li>
+  <li><a href="{rel}/{$platal->ns}admin/annuaire">Synchroniser annuaire et Listes de diffusion</a></li>
 </ul>
 {/if}