some refactor in list module
authorPierre Habouzit (MadCoder <pierre.habouzit@m4x.org>
Mon, 13 Dec 2004 01:19:01 +0000 (01:19 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:26:36 +0000 (23:26 +0200)
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-77

20 files changed:
htdocs/listes/admin.php
htdocs/listes/archives.php
htdocs/listes/check.php
htdocs/listes/delete.php
htdocs/listes/members.php
htdocs/listes/moderate.php
htdocs/listes/options.php
htdocs/listes/soptions.php
htdocs/listes/trombi.php
templates/listes/admin.tpl
templates/listes/archives.tpl
templates/listes/check.tpl
templates/listes/delete.tpl
templates/listes/members.tpl
templates/listes/moderate.tpl
templates/listes/moderate_mail.tpl
templates/listes/moderate_sub.tpl
templates/listes/options.tpl
templates/listes/soptions.tpl
templates/listes/trombi.tpl

index 1947247..43815af 100644 (file)
@@ -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();
 ?>
index 97fb9dd..d20370a 100644 (file)
@@ -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();
 ?>
index 05be3c0..8050554 100644 (file)
@@ -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();
 ?>
index 317b1bf..debbc16 100644 (file)
@@ -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();
index ce01fce..1b82a12 100644 (file)
@@ -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();
 ?>
index d139deb..a4a1ee3 100644 (file)
  *  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();
 ?>
index 06f3b4a..2ef013a 100644 (file)
@@ -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();
 ?>
index a4cdf34..162b661 100644 (file)
@@ -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();
 ?>
index 09f87ac..873f964 100644 (file)
@@ -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();
 ?>
index bcf9d31..05596c8 100644 (file)
 
 {dynamic}
 
-{if $no_list || ( !$details.own && $smarty.session.perms neq admin )}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de l'administrer</p>
-
-{else}
-
 {if !$details.own}
 <p class='erreur'>
 Tu n'es pas administrateur de la liste, mais du site.
@@ -108,8 +102,6 @@ qui y 
   </table>
 </form>
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index 4d7153c..6b6d6e7 100644 (file)
 
 {dynamic}
 
-{if $no_list}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit d'en voir les détails</p>
-
-{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: *}
index 6ac7424..5771238 100644 (file)
 
 {dynamic}
 
-{if $no_list || $smarty.session.perms neq admin }
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de l'administrer</p>
-
-{else}
-
 {include file="listes/header_listes.tpl" on=check}
 
 {if $options|@count}
@@ -52,8 +46,6 @@
 <p>Liste correcte !</p>
 {/if}
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index 3fc230c..db31427 100644 (file)
 
 {dynamic}
 
-{if $no_list || ( !$details.own && $smarty.session.perms neq admin )}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de l'administrer</p>
-
-{else}
-
 {if $deleted}
 
 <p>[<a href='index.php'>Voir toutes les listes</a>]</p>
@@ -69,7 +63,6 @@ Tu n'es pas administrateur de la liste, mais du site.
     </tr>
   </table>
 </form>
-{/if}
 
 {/if}
 
index a9604ee..39c3936 100644 (file)
 
 {dynamic}
 
-{if $no_list}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit d'en voir les détails</p>
-
-{else}
-
 {include file="listes/header_listes.tpl" on=members}
 
 <h1>
 </table>
 {/if}
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index af16d0f..a04afc5 100644 (file)
 
 {dynamic}
 
-{if $no_list}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de la modérer</p>
-
-{else}
-
 {include file="listes/header_listes.tpl" on=moderate}
 
 <h1>
 <p>pas de mails en attente de modération</p>
 {/if}
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index e76a022..07158ab 100644 (file)
 
 {dynamic}
 
-{if $no_list}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de la modérer</p>
-
-{else}
-
 <h1>
   Propriétés du mail en attente
 </h1>
@@ -97,8 +91,6 @@ En cas de refus, le mail envoy
 </p>
 <pre>{$msg}</pre>
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index a2220d0..f5a62d5 100644 (file)
 
 {dynamic}
 
-{if $no_list}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de la modérer</p>
-
-{else}
-
 <h1>
   Refuser l'inscription d'un utilisateur
 </h1>
@@ -52,8 +46,6 @@
   </table>
 </form>
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index 15c2b5a..23d17e3 100644 (file)
 
 {dynamic}
 
-{if $no_list || ( !$details.own && $smarty.session.perms neq admin )}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de l'administrer</p>
-
-{else}
-
 {if !$details.own}
 <p class='erreur'>
 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
 </form>
 {/if}
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index d7e7f70..25474a9 100644 (file)
 
 {dynamic}
 
-{if $no_list || $smarty.session.perms neq admin }
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit de l'administrer</p>
-
-{else}
-
 {include file="listes/header_listes.tpl" on=soptions}
 
 <h1>
   </div>
 </form>
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}
index d512648..7fde595 100644 (file)
 
 {dynamic}
 
-{if $no_list}
-
-<p class='erreur'>La liste n'existe pas ou tu n'as pas le droit d'en voir les détails</p>
-
-{else}
-
 {include file="listes/header_listes.tpl" on=trombi}
 
 <h1>
 
 {$trombi->show()|smarty:nodefaults}
 
-{/if}
-
 {/dynamic}
 
 {* vim:set et sw=2 sts=2 sws=2: *}