From: Pierre Habouzit (MadCoder
Date: Mon, 13 Dec 2004 01:19:01 +0000 (+0000)
Subject: some refactor in list module
X-Git-Tag: xorg/old~671
X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=9c8e411045283ee0fcb1dcee16fcb5e15a72938f;p=platal.git
some refactor in list module
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-77
---
diff --git a/htdocs/listes/admin.php b/htdocs/listes/admin.php
index 1947247..43815af 100644
--- a/htdocs/listes/admin.php
+++ b/htdocs/listes/admin.php
@@ -64,6 +64,9 @@ if(isset($_REQUEST['del_owner'])) {
}
if(list($det,$mem,$own) = $client->get_members($liste)) {
+ if (!$det['own'] && !has_perms()) {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer");
+ }
$membres = Array();
foreach($mem as $member) {
if(preg_match('/^([^.]*\.([^.]*)\.\d\d\d\d)@'.$globals->mail->domain.'$/', $member[1], $matches)) {
@@ -97,8 +100,9 @@ if(list($det,$mem,$own) = $client->get_members($liste)) {
$page->assign_by_ref('owners', $moderos);
$page->assign('np_m', count($mem));
-} else
- $page->assign('no_list',true);
+} else {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer");
+}
$page->run();
?>
diff --git a/htdocs/listes/archives.php b/htdocs/listes/archives.php
index 97fb9dd..d20370a 100644
--- a/htdocs/listes/archives.php
+++ b/htdocs/listes/archives.php
@@ -30,12 +30,12 @@ $client =& lists_xmlrpc($_SESSION['uid'], $_SESSION['password']);
if (list($det) = $client->get_members($liste)) {
if ( substr($liste,0,5) != 'promo' && ( $det['ins'] || $det['priv'] ) && !$det['own'] && ($det['sub']<2) ) {
- $page->assign('no_list',true);
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter");
} elseif (isset($_GET['file'])) {
$file = $_GET['file'];
$rep = $_GET['rep'];
if(strstr('/', $file)!==false || !preg_match(',^\d+/\d+$,', $_GET['rep'])) {
- $page->assign('no_list',true);
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter");
} else {
$page->assign('url', $globals->lists->spool."/{$globals->mail->domain}{$globals->lists->vhost_sep}$liste/$rep/$file");
}
@@ -49,8 +49,9 @@ if (list($det) = $client->get_members($liste)) {
$page->assign('archs', $archs);
$page->assign('range', range(1,12));
}
-} else
- $page->assign('no_list',true);
+} else {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter");
+}
$page->run();
?>
diff --git a/htdocs/listes/check.php b/htdocs/listes/check.php
index 05be3c0..8050554 100644
--- a/htdocs/listes/check.php
+++ b/htdocs/listes/check.php
@@ -33,8 +33,9 @@ if(isset($_POST['correct'])) { $client->check_options($liste, true); }
if(list($details,$options) = $client->check_options($liste)) {
$page->assign_by_ref('details', $details);
$page->assign_by_ref('options', $options);
-} else
- $page->assign('no_list', true);
+} else {
+ $page->kill("La liste n'existe pas");
+}
$page->run();
?>
diff --git a/htdocs/listes/delete.php b/htdocs/listes/delete.php
index 317b1bf..debbc16 100644
--- a/htdocs/listes/delete.php
+++ b/htdocs/listes/delete.php
@@ -32,11 +32,14 @@ if ( isset($_POST['valid']) && ($_POST['valid'] == 'OUI')
&& $client->delete_list($liste,!empty($_POST['del_archive'])) ) {
$page->assign('deleted', true);
} elseif (list($details,$options) = $client->get_owner_options($liste)) {
+ if (!$details['own'] && !has_perms()) {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer");
+ }
$page->assign_by_ref('details', $details);
$page->assign_by_ref('options', $options);
$page->assign('bogo_level', $client->get_bogo_level($liste));
} else {
- $page->assign('no_list', true);
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer");
}
$page->run();
diff --git a/htdocs/listes/members.php b/htdocs/listes/members.php
index ce01fce..1b82a12 100644
--- a/htdocs/listes/members.php
+++ b/htdocs/listes/members.php
@@ -80,8 +80,9 @@ if(list($det,$mem,$own) = $members) {
$page->assign_by_ref('owners', $moderos);
$page->assign('nb_m', count($mem));
-} else
- $page->assign('no_list',true);
+} else {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit d'en voir les détails");
+}
$page->run();
?>
diff --git a/htdocs/listes/moderate.php b/htdocs/listes/moderate.php
index d139deb..a4a1ee3 100644
--- a/htdocs/listes/moderate.php
+++ b/htdocs/listes/moderate.php
@@ -19,10 +19,10 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-if(empty($_REQUEST['liste'])) header('Location: index.php');
+if (empty($_REQUEST['liste'])) header('Location: index.php');
$liste = strtolower($_REQUEST['liste']);
-if(preg_match("!(?:[a-z0-9]+\\.)?{$globals->mail->domain}-(.*)!", $liste,$matches)) {
+if (preg_match("!(?:[a-z0-9]+\\.)?{$globals->mail->domain}-(.*)!", $liste, $matches)) {
header('Location: ?liste='.$matches[1]);
}
@@ -31,95 +31,58 @@ new_skinned_page('listes/moderate.tpl', AUTH_MDP);
require_once('lists.inc.php');
$client =& lists_xmlrpc($_SESSION['uid'], $_SESSION['password']);
+$page->register_modifier('qpd','quoted_printable_decode');
if(isset($_REQUEST['sadd'])) {
- $client->handle_request($liste,$_REQUEST['sadd'],4,'');
- /** 4 is the magic for SUBSCRIBE see Defaults.py **/
+ $client->handle_request($liste,$_REQUEST['sadd'],4,''); /* 4 = SUBSCRIBE */
header("Location: moderate.php?liste=$liste");
}
if(isset($_POST['sdel'])) {
- $client->handle_request($liste,$_POST['sdel'],2,stripslashes($_POST['reason']));
- /** 2 is the magic for REJECT see Defaults.py **/
+ $client->handle_request($liste,$_POST['sdel'],2,stripslashes($_POST['reason'])); /* 2 = REJECT */
}
if(isset($_REQUEST['mid'])) {
- $mid = $_REQUEST['mid'];
- require_once('diogenes.hernes.inc.php');
- $mailer = new HermesMailer();
- $mailer->addTo("$liste-owner@{$globals->mail->domain}");
- $mailer->setFrom("$liste-bounces@{$globals->mail->domain}");
- $mailer->addHeader('Reply-To', "$liste-owner@{$globals->mail->domain}");
-
- $mail = $client->get_pending_mail($liste, $mid);
+ $mid = $_REQUEST['mid'];
+ $mail = $client->get_pending_mail($liste, $mid);
+ $reason = '';
if(isset($_REQUEST['mok'])) {
- unset($_GET['mid']);
- if($client->handle_request($liste,$mid,1,'')) { /** 1 = APPROVE **/
- $mailer->setSubject("Message accepté");
- $texte = "le message suivant :\n\n"
- ." Auteur: {$mail['sender']}\n"
- ." Sujet : « {$mail['subj']} »\n"
- ." Date : ".strftime("le %d %b %Y à %H:%M:%S", (int)$mail['stamp'])."\n\n"
- ."a été accepté par {$_SESSION['prenom']} {$_SESSION['nom']}.\n";
- $mailer->setTxtBody(wordwrap($texte,72));
- $mailer->send();
- }
+ $action = 1; /** 2 = ACCEPT **/
+ $subject = "Message accepté";
+ $append .= "a été accepté par {$_SESSION['prenom']} {$_SESSION['nom']}.\n";
} elseif(isset($_POST['mno'])) {
- $reason = stripslashes($_POST['reason']);
- if($client->handle_request($liste,$mid,2,$reason)) { /** 2 = REJECT **/
- $mailer->setSubject("Message refusé");
- $texte = "le message suivant :\n\n"
- ." Auteur: {$mail['sender']}\n"
- ." Sujet : « {$mail['subj']} »\n"
- ." Date : ".strftime("le %d %b %Y à %H:%M:%S", (int)$mail['stamp'])."\n\n"
- ."a été refusé par {$_SESSION['prenom']} {$_SESSION['nom']} avec la raison :\n"
- ."« $reason »";
- $mailer->setTxtBody(wordwrap($texte,72));
- $mailer->send();
- }
+ $action = 2; /** 2 = REJECT **/
+ $subject = "Message refusé";
+ $reason = stripslashes($_POST['reason']);
+ $append = "a été refusé par {$_SESSION['prenom']} {$_SESSION['nom']} avec la raison :\n\n"
+ . $reason;
} elseif(isset($_REQUEST['mdel'])) {
+ $action = 3; /** 3 = DISCARD **/
+ $sbuject = "Message supprimé";
+ $append = "a été supprimé par {$_SESSION['prenom']} {$_SESSION['nom']}.\n\n"
+ . "Rappel: il ne faut utiliser cette opération que dans le cas de spams ou de virus !\n";
+ }
+
+ if (isset($action) && $client->handle_request($liste,$mid,$action,$reason) {
+ $texte = "le message suivant :\n\n"
+ ." Auteur: {$mail['sender']}\n"
+ ." Sujet : « {$mail['subj']} »\n"
+ ." Date : ".strftime("le %d %b %Y à %H:%M:%S", (int)$mail['stamp'])."\n\n"
+ .$append;
+ require_once('diogenes.hernes.inc.php');
+ $mailer = new HermesMailer();
+ $mailer->addTo("$liste-owner@{$globals->mail->domain}");
+ $mailer->setFrom("$liste-bounces@{$globals->mail->domain}");
+ $mailer->addHeader('Reply-To', "$liste-owner@{$globals->mail->domain}");
+ $mailer->setSubject($subject);
+ $mailer->setTxtBody(wordwrap($texte,72));
+ $mailer->send();
unset($_GET['mid']);
- if($client->handle_request($liste,$mid,3,'')) { /** 3 = DISCARD **/
- $mailer->setSubject("Message supprimé");
- $texte = "le message suivant :\n\n"
- ." Auteur: {$mail['sender']}\n"
- ." Sujet : « {$mail['subj']} »\n"
- ." Date : ".strftime("le %d %b %Y à %H:%M:%S",(int)$mail['stamp'])."\n\n"
- ."a été supprimé par {$_SESSION['prenom']} {$_SESSION['nom']}.\n\n"
- ."Rappel: il ne faut utiliser cette opération que dans le cas de spams ou de virus !\n";
- $mailer->setTxtBody(wordwrap($texte,72));
- $mailer->send();
- }
}
-}
-
-if(isset($_REQUEST['sid'])) {
- $sid = $_REQUEST['sid'];
- if(list($subs,$mails) = $client->get_pending_ops($liste)) {
- foreach($subs as $user) {
- if($user['id'] == $sid) $u = $user;
- }
- if($u) {
- $page->changeTpl('listes/moderate_sub.tpl');
- $page->assign('del_user',$u);
- } else {
- $page->assign_by_ref('subs', $subs);
- $page->assign_by_ref('mails', $mails);
- }
- } else
- $page->assign('no_list', true);
-
-} elseif(isset($_GET['mid'])) {
-
- $mid = $_REQUEST['mid'];
- $mail = $client->get_pending_mail($liste,$mid);
- if(is_array($mail)) {
- $fname = '/etc/mailman/fr/refuse.txt';
- $h = fopen($fname,'r');
- $msg = fread($h, filesize($fname));
- fclose($h);
+ if(isset($_GET['mid') && is_array($mail)) {
+ $msg = file_get_contents('/etc/mailman/fr/refuse.txt');
$msg = str_replace("%(adminaddr)s","$liste-owner@{$globals->mail->domain}", $msg);
$msg = str_replace("%(request)s","<< SUJET DU MAIL >>", $msg);
$msg = str_replace("%(reason)s","<< TON EXPLICATION >>", $msg);
@@ -128,22 +91,29 @@ if(isset($_REQUEST['sid'])) {
$page->changeTpl('listes/moderate_mail.tpl');
$page->assign_by_ref('mail', $mail);
- } else {
- if(list($subs,$mails) = $client->get_pending_ops($liste)) {
- $page->assign_by_ref('subs', $subs);
- $page->assign_by_ref('mails', $mails);
- } else
- $page->assign('no_list', true);
+ $page->run();
+ }
+
+} elseif(isset($_REQUEST['sid'])) {
+
+ if(list($subs,$mails) = $client->get_pending_ops($liste)) {
+ foreach($subs as $user) {
+ if($user['id'] == $_REQUEST['sid']) {
+ $page->changeTpl('listes/moderate_sub.tpl');
+ $page->assign('del_user',$user);
+ $page->run();
+ }
+ }
}
-} elseif(list($subs,$mails) = $client->get_pending_ops($liste)) {
+}
+if(list($subs,$mails) = $client->get_pending_ops($liste)) {
$page->assign_by_ref('subs', $subs);
$page->assign_by_ref('mails', $mails);
+} else {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de la modérer");
+}
-} else
- $page->assign('no_list', true);
-
-$page->register_modifier('qpd','quoted_printable_decode');
$page->run();
?>
diff --git a/htdocs/listes/options.php b/htdocs/listes/options.php
index 06f3b4a..2ef013a 100644
--- a/htdocs/listes/options.php
+++ b/htdocs/listes/options.php
@@ -48,11 +48,15 @@ if(isset($_POST['submit'])) {
}
if(list($details,$options) = $client->get_owner_options($liste)) {
+ if (!$details['own'] && !has_perms()) {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer");
+ }
$page->assign_by_ref('details', $details);
$page->assign_by_ref('options', $options);
$page->assign('bogo_level', $client->get_bogo_level($liste));
-} else
- $page->assign('no_list', true);
+} else {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer");
+}
$page->run();
?>
diff --git a/htdocs/listes/soptions.php b/htdocs/listes/soptions.php
index a4cdf34..162b661 100644
--- a/htdocs/listes/soptions.php
+++ b/htdocs/listes/soptions.php
@@ -54,8 +54,9 @@ if(isset($_POST['submit'])) {
if(list($details,$options) = $client->get_admin_options($liste)) {
$page->assign_by_ref('details', $details);
$page->assign_by_ref('options', $options);
-} else
- $page->assign('no_list', true);
+} else {
+ $page->kill("La liste n'existe pas");
+}
$page->run();
?>
diff --git a/htdocs/listes/trombi.php b/htdocs/listes/trombi.php
index 09f87ac..873f964 100644
--- a/htdocs/listes/trombi.php
+++ b/htdocs/listes/trombi.php
@@ -84,8 +84,9 @@ if(is_array($owners)) {
$trombi = new Trombi('getList');
$page->assign_by_ref('trombi',$trombi);
-} else
- $page->assign('no_list',true);
+} else {
+ $page->kill("La liste n'existe pas ou tu n'as pas le droit d'en voir les détails");
+}
$page->run();
?>
diff --git a/templates/listes/admin.tpl b/templates/listes/admin.tpl
index bcf9d31..05596c8 100644
--- a/templates/listes/admin.tpl
+++ b/templates/listes/admin.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list || ( !$details.own && $smarty.session.perms neq admin )}
-
-La liste n'existe pas ou tu n'as pas le droit de l'administrer
-
-{else}
-
{if !$details.own}
Tu n'es pas administrateur de la liste, mais du site.
@@ -108,8 +102,6 @@ qui y
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/archives.tpl b/templates/listes/archives.tpl
index 4d7153c..6b6d6e7 100644
--- a/templates/listes/archives.tpl
+++ b/templates/listes/archives.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list}
-
-
La liste n'existe pas ou tu n'as pas le droit d'en voir les détails
-
-{else}
-
{include file="listes/header_listes.tpl" on=archives}
@@ -89,8 +83,6 @@
{/tidy}
{/if}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/check.tpl b/templates/listes/check.tpl
index 6ac7424..5771238 100644
--- a/templates/listes/check.tpl
+++ b/templates/listes/check.tpl
@@ -22,12 +22,6 @@
{dynamic}
-{if $no_list || $smarty.session.perms neq admin }
-
-La liste n'existe pas ou tu n'as pas le droit de l'administrer
-
-{else}
-
{include file="listes/header_listes.tpl" on=check}
{if $options|@count}
@@ -52,8 +46,6 @@
Liste correcte !
{/if}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/delete.tpl b/templates/listes/delete.tpl
index 3fc230c..db31427 100644
--- a/templates/listes/delete.tpl
+++ b/templates/listes/delete.tpl
@@ -22,12 +22,6 @@
{dynamic}
-{if $no_list || ( !$details.own && $smarty.session.perms neq admin )}
-
-La liste n'existe pas ou tu n'as pas le droit de l'administrer
-
-{else}
-
{if $deleted}
[Voir toutes les listes]
@@ -69,7 +63,6 @@ Tu n'es pas administrateur de la liste, mais du site.
-{/if}
{/if}
diff --git a/templates/listes/members.tpl b/templates/listes/members.tpl
index a9604ee..39c3936 100644
--- a/templates/listes/members.tpl
+++ b/templates/listes/members.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list}
-
-La liste n'existe pas ou tu n'as pas le droit d'en voir les détails
-
-{else}
-
{include file="listes/header_listes.tpl" on=members}
@@ -135,8 +129,6 @@
{/if}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/moderate.tpl b/templates/listes/moderate.tpl
index af16d0f..a04afc5 100644
--- a/templates/listes/moderate.tpl
+++ b/templates/listes/moderate.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list}
-
-
La liste n'existe pas ou tu n'as pas le droit de la modérer
-
-{else}
-
{include file="listes/header_listes.tpl" on=moderate}
@@ -103,8 +97,6 @@
pas de mails en attente de modération
{/if}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/moderate_mail.tpl b/templates/listes/moderate_mail.tpl
index e76a022..07158ab 100644
--- a/templates/listes/moderate_mail.tpl
+++ b/templates/listes/moderate_mail.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list}
-
-La liste n'existe pas ou tu n'as pas le droit de la modérer
-
-{else}
-
Propriétés du mail en attente
@@ -97,8 +91,6 @@ En cas de refus, le mail envoy
{$msg}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/moderate_sub.tpl b/templates/listes/moderate_sub.tpl
index a2220d0..f5a62d5 100644
--- a/templates/listes/moderate_sub.tpl
+++ b/templates/listes/moderate_sub.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list}
-
-La liste n'existe pas ou tu n'as pas le droit de la modérer
-
-{else}
-
Refuser l'inscription d'un utilisateur
@@ -52,8 +46,6 @@
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/options.tpl b/templates/listes/options.tpl
index 15c2b5a..23d17e3 100644
--- a/templates/listes/options.tpl
+++ b/templates/listes/options.tpl
@@ -22,12 +22,6 @@
{dynamic}
-{if $no_list || ( !$details.own && $smarty.session.perms neq admin )}
-
-La liste n'existe pas ou tu n'as pas le droit de l'administrer
-
-{else}
-
{if !$details.own}
Tu n'es pas administrateur de la liste, mais du site.
@@ -177,8 +171,6 @@ redirection en mode 'inactif'. le logiciel de mailing list saura se d
{/if}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/soptions.tpl b/templates/listes/soptions.tpl
index d7e7f70..25474a9 100644
--- a/templates/listes/soptions.tpl
+++ b/templates/listes/soptions.tpl
@@ -22,12 +22,6 @@
{dynamic}
-{if $no_list || $smarty.session.perms neq admin }
-
-
La liste n'existe pas ou tu n'as pas le droit de l'administrer
-
-{else}
-
{include file="listes/header_listes.tpl" on=soptions}
@@ -110,8 +104,6 @@
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/listes/trombi.tpl b/templates/listes/trombi.tpl
index d512648..7fde595 100644
--- a/templates/listes/trombi.tpl
+++ b/templates/listes/trombi.tpl
@@ -20,12 +20,6 @@
{dynamic}
-{if $no_list}
-
-
La liste n'existe pas ou tu n'as pas le droit d'en voir les détails
-
-{else}
-
{include file="listes/header_listes.tpl" on=trombi}
@@ -108,8 +102,6 @@
{$trombi->show()|smarty:nodefaults}
-{/if}
-
{/dynamic}
{* vim:set et sw=2 sts=2 sws=2: *}