Moving to GitHub.
[platal.git] / modules / xnetnl.php
index a6fb168..f26b083 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2011 Polytechnique.org                              *
+ *  Copyright (C) 2003-2014 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -26,16 +26,18 @@ class XnetNlModule extends NewsletterModule
     function handlers()
     {
         return array(
-            '%grp/nl'                   => $this->make_hook('nl',              AUTH_MDP),
-            '%grp/nl/show'              => $this->make_hook('nl_show',         AUTH_MDP),
-            '%grp/nl/search'            => $this->make_hook('nl_search',       AUTH_MDP),
-            '%grp/admin/nl'             => $this->make_hook('admin_nl',        AUTH_MDP, 'groupadmin'),
-            '%grp/admin/nl/sync'        => $this->make_hook('admin_nl_sync',   AUTH_MDP, 'groupadmin'),
-            '%grp/admin/nl/enable'      => $this->make_hook('admin_nl_enable', AUTH_MDP, 'groupadmin'),
-            '%grp/admin/nl/edit'        => $this->make_hook('admin_nl_edit',   AUTH_MDP, 'groupadmin'),
-            '%grp/admin/nl/edit/cancel' => $this->make_hook('admin_nl_cancel', AUTH_MDP, 'groupadmin'),
-            '%grp/admin/nl/edit/valid'  => $this->make_hook('admin_nl_valid',  AUTH_MDP, 'groupadmin'),
-            '%grp/admin/nl/categories'  => $this->make_hook('admin_nl_cat',    AUTH_MDP, 'groupadmin'),
+            '%grp/nl'                   => $this->make_hook('nl',              AUTH_PASSWD, 'groupmember'),
+            '%grp/nl/show'              => $this->make_hook('nl_show',         AUTH_PASSWD, 'groupmember'),
+            '%grp/nl/search'            => $this->make_hook('nl_search',       AUTH_PASSWD, 'groupmember'),
+            '%grp/admin/nl'             => $this->make_hook('admin_nl',        AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/sync'        => $this->make_hook('admin_nl_sync',   AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/enable'      => $this->make_hook('admin_nl_enable', AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/edit'        => $this->make_hook('admin_nl_edit',   AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/edit/cancel' => $this->make_hook('admin_nl_cancel', AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/edit/delete' => $this->make_hook('admin_nl_delete', AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/edit/valid'  => $this->make_hook('admin_nl_valid',  AUTH_PASSWD, 'groupadmin'),
+            '%grp/admin/nl/categories'  => $this->make_hook('admin_nl_cat',    AUTH_PASSWD, 'groupadmin'),
+            '%grp/stat'                 => $this->make_hook('stat_nl',         AUTH_PASSWD, 'groupadmin')
         );
     }
 
@@ -57,16 +59,12 @@ class XnetNlModule extends NewsletterModule
         if (Env::has('add_users')) {
             S::assert_xsrf_token();
 
-            XDB::execute('INSERT IGNORE INTO  newsletter_ins (uid, nlid)
-                                      SELECT  g.uid, n.id
-                                        FROM  group_members AS g
-                                  INNER JOIN  newsletters   AS n  ON (n.group_id = g.asso_id)
-                                       WHERE  g.uid IN {?} AND g.asso_id = {?}',
-                         array_keys(Env::v('add_users')), $globals->asso('id'));
+            $nl->bulkSubscribe(array_keys(Env::v('add_users')));
 
             $page->trigSuccess('Ajouts réalisés avec succès.');
         }
 
+        // TODO(x2006barrois): remove raw SQL query.
         $uids = XDB::fetchColumn('SELECT  DISTINCT(g.uid)
                                     FROM  group_members AS g
                                    WHERE  g.asso_id = {?} AND NOT EXISTS (SELECT  ni.*
@@ -114,5 +112,5 @@ class XnetNlModule extends NewsletterModule
     }
 }
 
-// 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:
 ?>