X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fxnetgrp.php;h=37c93d29ac1cf4c2c7d6b42c84b3e16bb84d33cb;hb=5d42c993d85a2f1fa3595eb1591a921c0f89d8cd;hp=a9a981548e014b399a178ab2e6fc6599da7b0f41;hpb=4af7fd22ba1dfbc9c042bbeafdbbedf9d7ecee06;p=platal.git diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index a9a9815..37c93d2 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -122,7 +122,7 @@ class XnetGrpModule extends PLModule if (S::logged()) { if (Env::has('read')) { - XDB::query('DELETE r.* + XDB::query('DELETE groupex.r.* FROM groupex.announces_read AS r INNER JOIN groupex.announces AS a ON a.id = r.announce_id WHERE peremption < CURRENT_DATE()'); @@ -233,7 +233,7 @@ class XnetGrpModule extends PLModule if (Post::has('submit')) { S::assert_xsrf_token(); - $flags = new FlagSet('wiki_desc'); + $flags = new PlFlagSet('wiki_desc'); if (Post::has('notif_unsub') && Post::i('notif_unsub') == 1) { $flags->addFlag('notif_unsub'); } @@ -312,6 +312,7 @@ class XnetGrpModule extends PLModule $page->addJsLink('ajax.js'); if (Post::has('send')) { + S::assert_xsrf_token(); $from = Post::v('from'); $sujet = Post::v('sujet'); $body = Post::v('body'); @@ -319,7 +320,7 @@ class XnetGrpModule extends PLModule $mls = array_keys(Env::v('ml', array())); $mbr = array_keys(Env::v('membres', array())); - require_once dirname(__FILE__) . '/xnetgrp/mail.inc.php'; + $this->load('mail.inc.php'); set_time_limit(120); $tos = get_all_redirects($mbr, $mls, $mmlist); $upload = PlUpload::get($_FILES['uploaded'], S::v('forlife'), 'xnet.emails', true); @@ -327,7 +328,7 @@ class XnetGrpModule extends PLModule if ($upload) { $upload->rm(); } - $page->kill("Mail envoyé !"); + $page->kill("Email envoyé !"); $page->assign('sent', true); } } @@ -478,8 +479,9 @@ class XnetGrpModule extends PLModule $res = XDB::query('SELECT uid FROM groupex.membres WHERE asso_id = {?}', $globals->asso('id')); - $vcard = new VCard($res->fetchColumn(), $photos == 'photos', 'Membre du groupe ' . $globals->asso('nom')); - $vcard->do_page($page); + $vcard = new VCard($photos == 'photos', 'Membre du groupe ' . $globals->asso('nom')); + $vcard->addUsers($res->fetchColumn()); + $vcard->show(); } function handler_csv(&$page, $filename = null) @@ -571,14 +573,14 @@ class XnetGrpModule extends PLModule $this->removeSubscriptionRequest($uid); $page->kill("$prenom $nom est déjà membre du groupe !"); return; - } - elseif (Env::has('accept')) - { + } elseif (Env::has('accept')) { + S::assert_xsrf_token(); + $this->validSubscription($nom, $prenom, $sexe, $uid, $u); pl_redirect("member/$u"); - } - elseif (Env::has('refuse')) - { + } elseif (Env::has('refuse')) { + S::assert_xsrf_token(); + $this->removeSubscriptionRequest($uid); $mailer = new PlMailer(); $mailer->addTo("$u@polytechnique.org"); @@ -616,6 +618,8 @@ class XnetGrpModule extends PLModule } if (Post::has('inscrire')) { + S::assert_xsrf_token(); + XDB::execute("INSERT INTO groupex.membres_sub_requests (asso_id, uid, ts, reason) VALUES ({?}, {?}, NOW(), {?})", $globals->asso('id'), S::i('uid'), Post::v('message')); @@ -705,25 +709,26 @@ class XnetGrpModule extends PLModule if (Env::has('right') && (may_update() || S::has('suid'))) { switch (Env::v('right')) { case 'admin': - XnetSession::killSuid(); + Platal::session()->stopSUID(); break; case 'anim': - XnetSession::doSelfSuid(); + Platal::session()->doSelfSuid(); may_update(true); is_member(true); break; case 'member': - XnetSession::doSelfSuid(); + Platal::session()->doSelfSuid(); may_update(false, true); is_member(true); break; case 'logged': - XnetSession::doSelfSuid(); + Platal::session()->doSelfSuid(); may_update(false, true); is_member(false, true); break; } } +// var_dump($_SESSION); http_redirect($_SERVER['HTTP_REFERER']); } @@ -731,7 +736,7 @@ class XnetGrpModule extends PLModule { global $globals; - require_once dirname(__FILE__) . '/xnetgrp/mail.inc.php'; + $this->load('mail.inc.php'); $page->changeTpl('xnetgrp/annuaire-admin.tpl'); $mmlist = new MMList(S::v('uid'), S::v('password'), $globals->asso('mail_domain')); @@ -782,6 +787,8 @@ class XnetGrpModule extends PLModule if (is_null($email)) { return; + } else { + S::assert_xsrf_token(); } if (strpos($email, '@') === false) { @@ -806,7 +813,6 @@ class XnetGrpModule extends PLModule $page->trigError($email." n'est pas un alias polytechnique.org valide."); } } else { - require_once 'xorg.misc.inc.php'; if (isvalid_email($email)) { if (Env::v('x') && Env::has('userid') && Env::i('userid')) { $uid = Env::i('userid'); @@ -838,7 +844,7 @@ class XnetGrpModule extends PLModule pl_redirect("member/$email"); } } else { - $page->trigError("« $email » n'est pas une adresse mail valide."); + $page->trigError("« $email » n'est pas une adresse email valide."); } } } @@ -879,7 +885,7 @@ class XnetGrpModule extends PLModule function unsubscribe(&$user) { - global $globals, $page; + global $globals; XDB::execute( "DELETE FROM groupex.membres WHERE uid={?} AND asso_id={?}", $user['uid'], $globals->asso('id')); @@ -923,9 +929,9 @@ class XnetGrpModule extends PLModule $mmlist->unsubscribe($liste['list']); } } elseif ($liste['sub']) { - $page->trigWarning("{$user['prenom']} {$user['nom']} a une" - ." demande d'inscription en cours sur la" - ." liste {$liste['list']}@ !"); + Platal::page()->trigWarning("{$user['prenom']} {$user['nom']} a une" + ." demande d'inscription en cours sur la" + ." liste {$liste['list']}@ !"); $warning = true; } } @@ -950,12 +956,14 @@ class XnetGrpModule extends PLModule if (!Post::has('confirm')) { return; + } else { + S::assert_xsrf_token(); } if ($this->unsubscribe($user)) { $page->trigSuccess('Vous avez été désinscrit du groupe avec succès.'); } else { - $page->trigWarning('Vous avez été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des mailing-lists.'); + $page->trigWarning('Vous avez été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des listes de diffusion.'); } $page->assign('is_member', is_member(true)); } @@ -971,6 +979,8 @@ class XnetGrpModule extends PLModule if (!Post::has('confirm')) { return; + } else { + S::assert_xsrf_token(); } if ($this->unsubscribe($user)) { @@ -980,7 +990,7 @@ class XnetGrpModule extends PLModule } } - private function changeLogin(PlatalPage &$page, array &$user, MMList &$mmlist, $login) + private function changeLogin(PlPage &$page, array &$user, MMList &$mmlist, $login) { require_once 'user.func.inc.php'; // Search the uid of the user... @@ -1064,6 +1074,8 @@ class XnetGrpModule extends PLModule $globals->asso('mail_domain')); if (Post::has('change')) { + S::assert_xsrf_token(); + // Convert user status to X if ($user['origine'] == 'ext' && trim(Post::v('login_X'))) { $forlife = $this->changeLogin($page, $user, $mmlist, trim(Post::v('login_X'))); @@ -1172,32 +1184,14 @@ class XnetGrpModule extends PLModule function handler_rss(&$page, $user = null, $hash = null) { global $globals; - require_once('rss.inc.php'); - $uid = init_rss('xnetgrp/announce-rss.tpl', $user, $hash, false); - - if ($uid) { - $rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.contacts, a.create_date, - IF(u2.nom_usage != '', u2.nom_usage, u2.nom) AS nom, u2.prenom, u2.promo, - FIND_IN_SET('photo', a.flags) AS photo - FROM auth_user_md5 AS u - INNER JOIN groupex.announces AS a ON ( (a.promo_min = 0 OR a.promo_min <= u.promo) - AND (a.promo_max = 0 OR a.promo_max <= u.promo)) - INNER JOIN auth_user_md5 AS u2 ON (u2.user_id = a.user_id) - WHERE u.user_id = {?} AND peremption >= NOW() AND a.asso_id = {?}", - $uid, $globals->asso('id')); - } else { - $rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.create_date, - IF(u.nom_usage != '', u.nom_usage, u.nom) AS nom, u.prenom, u.promo - FROM groupex.announces AS a - INNER JOIN auth_user_md5 AS u USING(user_id) - WHERE FIND_IN_SET('public', a.flags) AND peremption >= NOW() AND a.asso_id = {?}", - $globals->asso('id')); - } $page->assign('asso', $globals->asso()); - $page->assign('rss', $rss); + + $this->load('feed.inc.php'); + $feed = new XnetGrpEventFeed(); + return $feed->run($page, $user, $hash, false); } - private function upload_image(PlatalPage &$page, PlUpload &$upload) + private function upload_image(PlPage &$page, PlUpload &$upload) { if (@!$_FILES['image']['tmp_name'] && !Env::v('image_url')) { return true; @@ -1248,6 +1242,8 @@ class XnetGrpModule extends PLModule if (Post::v('valid') == 'Visualiser' || Post::v('valid') == 'Enregistrer' || Post::v('valid') == 'Supprimer l\'image' || Post::v('valid') == 'Pas d\'image') { + S::assert_xsrf_token(); + if (!is_null($aid)) { $art['id'] = $aid; } @@ -1303,7 +1299,7 @@ class XnetGrpModule extends PLModule if (Post::v('valid') == 'Enregistrer') { $promo_min = ($art['public'] ? 0 : $art['promo_min']); $promo_max = ($art['public'] ? 0 : $art['promo_max']); - $flags = new FlagSet(); + $flags = new PlFlagSet(); if ($art['public']) { $flags->addFlag('public'); } @@ -1411,6 +1407,7 @@ class XnetGrpModule extends PLModule $page->changeTpl('xnetgrp/announce-admin.tpl'); if (Env::has('del')) { + S::assert_xsrf_token(); XDB::execute("DELETE FROM groupex.announces WHERE id = {?} AND asso_id = {?}", Env::i('del'), $globals->asso('id'));