X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fxnetnl.php;h=e04c4d3395a5831cd37410c8f1c0375ca09838cc;hb=977168f6915e290cf8d9351651b9d8a0c908ac70;hp=a5a25ede9122a77c635ab83cf1a3e752c7d2b324;hpb=ff0299c9feeeb22d8ceeae4219bd6293605fe190;p=platal.git diff --git a/modules/xnetnl.php b/modules/xnetnl.php index a5a25ed..e04c4d3 100644 --- a/modules/xnetnl.php +++ b/modules/xnetnl.php @@ -26,14 +26,15 @@ 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/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_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/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'), ); } @@ -43,6 +44,36 @@ class XnetNlModule extends NewsletterModule $group = $globals->asso('shortname'); return NewsLetter::forGroup($group); } + + public function handler_admin_nl_enable($page) + { + global $globals; + $nl = $this->getNl(); + if ($nl) { + return PL_FORBIDDEN; + } + + if (Post::has('title')) { + if (!S::has_xsrf_token()) { + return PL_FORBIDDEN; + } + + XDB::execute('INSERT INTO newsletters + SET group_id = {?}, name = {?}', + $globals->asso('id'), Post::s('title')); + + $mailer = new PlMailer(); + $mailer->assign('group', $globals->asso('nom')); + $mailer->assign('user', S::user()); + $mailer->send(); + + $page->trigSuccessRedirect("La lettre d'informations du groupe " . + $globals->asso('nom') . " a bien été créée", + $globals->asso('shortname') . '/admin/nl'); + } + $page->setTitle('Activation de la newsletter'); + $page->changeTpl('newsletter/enable.tpl'); + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: