X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fxnetgrp.php;h=187151dff15c3df3567924cd59b1a8453ed8bb4e;hb=e97df22eacc433a9982aad507f980b303d5fa2c1;hp=eed2975b99205e06b0012a6eb8e9b6dfb4484c38;hpb=1f58ccb1e75eca08fbd04971d617ea372bc77b5a;p=platal.git diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index eed2975..187151d 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -77,30 +77,30 @@ class XnetGrpModule extends PLModule '%grp/asso.php' => $this->make_hook('index', AUTH_PUBLIC), '%grp/logo' => $this->make_hook('logo', AUTH_PUBLIC), '%grp/site' => $this->make_hook('site', AUTH_PUBLIC), - '%grp/edit' => $this->make_hook('edit', AUTH_MDP, 'groupadmin'), - '%grp/mail' => $this->make_hook('mail', AUTH_MDP, 'groupadmin'), - '%grp/forum' => $this->make_hook('forum', AUTH_MDP, 'groupmember'), - '%grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP, 'groupannu'), - '%grp/annuaire/vcard' => $this->make_hook('vcard', AUTH_MDP, 'groupmember:groupannu'), - '%grp/annuaire/csv' => $this->make_hook('csv', AUTH_MDP, 'groupmember:groupannu'), - '%grp/trombi' => $this->make_hook('trombi', AUTH_MDP, 'groupannu'), - '%grp/geoloc' => $this->make_hook('geoloc', AUTH_MDP, 'groupannu'), + '%grp/edit' => $this->make_hook('edit', AUTH_MDP, 'groupadmin'), + '%grp/mail' => $this->make_hook('mail', AUTH_MDP, 'groupadmin'), + '%grp/forum' => $this->make_hook('forum', AUTH_MDP, 'groupmember'), + '%grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP, 'groupannu'), + '%grp/annuaire/vcard' => $this->make_hook('vcard', AUTH_MDP, 'groupmember:groupannu'), + '%grp/annuaire/csv' => $this->make_hook('csv', AUTH_MDP, 'groupmember:groupannu'), + '%grp/trombi' => $this->make_hook('trombi', AUTH_MDP, 'groupannu'), + '%grp/geoloc' => $this->make_hook('geoloc', AUTH_MDP, 'groupannu'), '%grp/subscribe' => $this->make_hook('subscribe', AUTH_MDP), - '%grp/subscribe/valid' => $this->make_hook('subscribe_valid', AUTH_MDP, 'groupadmin'), - '%grp/unsubscribe' => $this->make_hook('unsubscribe', AUTH_MDP, 'groupmember'), + '%grp/subscribe/valid' => $this->make_hook('subscribe_valid', AUTH_MDP, 'groupadmin'), + '%grp/unsubscribe' => $this->make_hook('unsubscribe', AUTH_MDP, 'groupmember'), '%grp/change_rights' => $this->make_hook('change_rights', AUTH_MDP), - '%grp/admin/annuaire' => $this->make_hook('admin_annuaire', AUTH_MDP, 'groupadmin'), - '%grp/member' => $this->make_hook('admin_member', AUTH_MDP, 'groupadmin'), - '%grp/member/new' => $this->make_hook('admin_member_new', AUTH_MDP, 'groupadmin'), - '%grp/member/new/ajax' => $this->make_hook('admin_member_new_ajax', AUTH_MDP, 'user', NO_AUTH), - '%grp/member/del' => $this->make_hook('admin_member_del', AUTH_MDP, 'groupadmin'), + '%grp/admin/annuaire' => $this->make_hook('admin_annuaire', AUTH_MDP, 'groupadmin'), + '%grp/member' => $this->make_hook('admin_member', AUTH_MDP, 'groupadmin'), + '%grp/member/new' => $this->make_hook('admin_member_new', AUTH_MDP, 'groupadmin'), + '%grp/member/new/ajax' => $this->make_hook('admin_member_new_ajax', AUTH_MDP, 'user', NO_AUTH), + '%grp/member/del' => $this->make_hook('admin_member_del', AUTH_MDP, 'groupadmin'), '%grp/rss' => $this->make_hook('rss', AUTH_PUBLIC, 'user', NO_HTTPS), - '%grp/announce/new' => $this->make_hook('edit_announce', AUTH_MDP, 'groupadmin'), - '%grp/announce/edit' => $this->make_hook('edit_announce', AUTH_MDP, 'groupadmin'), + '%grp/announce/new' => $this->make_hook('edit_announce', AUTH_MDP, 'groupadmin'), + '%grp/announce/edit' => $this->make_hook('edit_announce', AUTH_MDP, 'groupadmin'), '%grp/announce/photo' => $this->make_hook('photo_announce', AUTH_PUBLIC), - '%grp/admin/announces' => $this->make_hook('admin_announce', AUTH_MDP, 'groupadmin'), + '%grp/admin/announces' => $this->make_hook('admin_announce', AUTH_MDP, 'groupadmin'), ); } @@ -186,22 +186,12 @@ class XnetGrpModule extends PLModule $globals->asso('id')); list($logo, $logo_mime) = $res->fetchOneRow(); + pl_cached_dynamic_content_headers(empty($logo) ? "image/jpeg" : $logo_mime); if (!empty($logo)) { - header("Content-type: $mime"); - header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); - header('Last-Modified:' . gmdate('D, d M Y H:i:s') . ' GMT'); - header('Cache-Control: no-cache, must-revalidate'); - header('Pragma: no-cache'); echo $logo; } else { - header('Content-type: image/jpeg'); - header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); - header('Last-Modified:' . gmdate('D, d M Y H:i:s') . ' GMT'); - header('Cache-Control: no-cache, must-revalidate'); - header('Pragma: no-cache'); - readfile(dirname(__FILE__).'/../htdocs/images/dflt_carre.jpg'); + readfile(dirname(__FILE__) . '/../htdocs/images/dflt_carre.jpg'); } - exit; } @@ -225,7 +215,7 @@ class XnetGrpModule extends PLModule if (Post::has('submit')) { S::assert_xsrf_token(); - $flags = new PlFlagSet('wiki_desc'); + $flags = new PlFlagSet(); if (Post::has('notif_unsub') && Post::i('notif_unsub') == 1) { $flags->addFlag('notif_unsub'); } @@ -238,9 +228,9 @@ class XnetGrpModule extends PLModule } else { $site = ""; } - if (S::has_perms()) { + if (S::admin()) { if (Post::v('mail_domain') && (strstr(Post::v('mail_domain'), '.') === false)) { - $page->trigError("le domaine doit être un FQDN (aucune modif effectuée) !!!"); + $page->trigError('Le domaine doit être un FQDN (aucune modification effectuée) !!!'); return; } XDB::execute( @@ -267,13 +257,12 @@ class XnetGrpModule extends PLModule XDB::execute( "UPDATE groupex.asso SET descr={?}, site={?}, mail={?}, resp={?}, - forum={?}, ax={?}, pub= {?}, sub_url={?}, + forum={?}, pub= {?}, sub_url={?}, unsub_url={?},flags={?} WHERE id={?}", Post::v('descr'), $site, Post::v('mail'), Post::v('resp'), - Post::v('forum'), Post::has('ax'), - Post::v('pub'), + Post::v('forum'), Post::v('pub'), Post::v('sub_url'), Post::v('unsub_url'), $flags, $globals->asso('id')); } @@ -290,16 +279,11 @@ class XnetGrpModule extends PLModule pl_redirect('../'.Post::v('diminutif', $globals->asso('diminutif')).'/edit'); } - if (S::has_perms()) { + if (S::admin()) { $dom = XDB::iterator('SELECT * FROM groupex.dom ORDER BY nom'); $page->assign('dom', $dom); $page->assign('super', true); } - if (!$globals->asso('wiki_desc') && $globals->asso('descr')) { - $page->trigWarning("Attention, le format de la description a changé et utilise désormais la syntaxe wiki " - . "intégrée au site. Il te faudra probablement adapter le formatage du texte actuel pour " - . "qu'il s'affiche correctement avec cette nouvelle syntaxe."); - } } function handler_mail(&$page) @@ -325,12 +309,18 @@ class XnetGrpModule extends PLModule $this->load('mail.inc.php'); set_time_limit(120); $tos = get_all_redirects($mbr, $mls, $mmlist); + $upload = PlUpload::get($_FILES['uploaded'], S::user()->login(), 'xnet.emails', true); + if (!$upload && @$_FILES['uploaded']['name'] && PlUpload::$lastError != null) { + $page->trigError(PlUpload::$lastError); + return; + } + send_xnet_mails($from, $sujet, $body, Env::v('wiki'), $tos, Post::v('replyto'), $upload, @$_FILES['uploaded']['name']); if ($upload) { $upload->rm(); } - $page->killSuccess("Email envoyé !"); + $page->killSuccess("Email envoyé !"); $page->assign('sent', true); } } @@ -401,7 +391,7 @@ class XnetGrpModule extends PLModule while (list($char, $nb) = $res->next()) { $alphabet[] = $char; $nb_tot += $nb; - if (Env::has($group) && $char == strtoupper(Env::v($group))) { + if (Env::has($group) && $char == mb_strtoupper(Env::v($group))) { $tot = $nb; } } @@ -507,9 +497,7 @@ class XnetGrpModule extends PLModule GROUP BY m.uid ORDER BY nom, prenom", $globals->mail->domain, $globals->asso('id')); - header('Content-Type: text/x-csv; charset=utf-8;'); - header('Pragma: '); - header('Cache-Control: '); + pl_content_headers("text/x-csv"); $page->changeTpl('xnetgrp/annuaire-csv.tpl', NO_SKIN); $page->assign('ann', $ann); } @@ -581,7 +569,7 @@ class XnetGrpModule extends PLModule // Handles the membership request. if ($already_member) { $this->removeSubscriptionRequest($user->id()); - $page->kill($user->fullName() . " est déjà membre du groupe !"); + $page->kill($user->fullName() . ' est déjà membre du groupe !'); } elseif (Env::has('accept')) { S::assert_xsrf_token(); @@ -606,7 +594,7 @@ class XnetGrpModule extends PLModule } if (is_member()) { - $page->kill("Tu es déjà membre !"); + $page->kill("Tu es déjà membre !"); return; } @@ -648,7 +636,8 @@ class XnetGrpModule extends PLModule . "à l'adresse : support@polytechnique.org\n"; if (!$to) { - $to = $globals->asso("mail").", support@polytechnique.org"; + $to = ($globals->asso('mail') != '') ? $globals->asso('mail') . ', ' : ''; + $to .= 'support@polytechnique.org'; $append = "\n-- \nLe groupe ".$globals->asso("nom") ." n'a pas d'administrateur, l'équipe de" ." Polytechnique.org a été prévenue et va rapidement" @@ -823,14 +812,14 @@ class XnetGrpModule extends PLModule pl_redirect("member/$email"); } } else { - $page->trigError("« $email » n'est pas une adresse email valide."); + $page->trigError("« $email Â» n'est pas une adresse email valide."); } } } function handler_admin_member_new_ajax(&$page) { - header('Content-Type: text/html; charset="UTF-8"'); + pl_content_headers("text/html"); $page->changeTpl('xnetgrp/membres-new-search.tpl', NO_SKIN); $res = null; if (Env::has('login')) { @@ -963,9 +952,9 @@ class XnetGrpModule extends PLModule } if ($this->unsubscribe($user)) { - $page->trigSuccess("{$user['prenom']} {$user['nom']} a été désabonné du groupe !"); + $page->trigSuccess("{$user['prenom']} {$user['nom']} a été désabonné du groupe !"); } else { - $page->trigWarning("{$user['prenom']} {$user['nom']} a été désabonné du groupe, mais des erreurs subsistent !"); + $page->trigWarning("{$user['prenom']} {$user['nom']} a été désabonné du groupe, mais des erreurs subsistent !"); } } @@ -1091,7 +1080,7 @@ class XnetGrpModule extends PLModule $perms ? 'admin' : 'membre', $comm, $user['uid'], $globals->asso('id')); if ($perms != $user['perms']) { - $page->trigSuccess('Permissions modifiées !'); + $page->trigSuccess('Permissions modifiées !'); } if ($comm != $user['comm']) { $page->trigSuccess('Commentaire mis à jour.'); @@ -1194,20 +1183,20 @@ class XnetGrpModule extends PLModule $res = XDB::query("SELECT * FROM groupex.announces_photo WHERE eid = {?}", $eid); if ($res->numRows()) { $photo = $res->fetchOneAssoc(); - header('Content-Type: image/' . $photo['attachmime']); + pl_cached_dynamic_content_headers("image/" . $photo['attachmime']); echo $photo['attach']; exit; } } else { $upload = new PlUpload(S::user()->login(), 'xnetannounce'); if ($upload->exists() && $upload->isType('image')) { - header('Content-Type: ' . $upload->contentType()); + pl_cached_dynamic_content_headers($upload->contentType()); echo $upload->getContents(); exit; } } global $globals; - header('Content-Type: image/png'); + pl_cached_dynamic_content_headers("image/png"); echo file_get_contents($globals->spoolroot . '/htdocs/images/logo.png'); exit; }