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: *}