X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fxnetnl.php;h=b326618599ac7905c29aea7b0bdb233119b88217;hb=2ec25d62c74e5589620b2a2c89d5dbb041147d55;hp=a6fb168587eb8ca7b503997c5611eb381d41e6d5;hpb=f3ba9a54052e6841bd0edb15249936a1180adbae;p=platal.git diff --git a/modules/xnetnl.php b/modules/xnetnl.php index a6fb168..b326618 100644 --- a/modules/xnetnl.php +++ b/modules/xnetnl.php @@ -26,16 +26,17 @@ 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, 'groups'), + '%grp/nl/show' => $this->make_hook('nl_show', AUTH_PASSWD, 'groups'), + '%grp/nl/search' => $this->make_hook('nl_search', AUTH_PASSWD, 'groups'), + '%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/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 +58,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.*