mail->domain; if (preg_match("!(?:[a-z0-9]+\\.)?{$domain}_(.*)!", $liste, $matches)) { header("Location: {$_SERVER['PHP_SELF']}?liste={$matches[1]}"); } new_skinned_page('listes/moderate.tpl', AUTH_MDP); require_once('lists.inc.php'); $client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password')); } $page->register_modifier('qpd','quoted_printable_decode'); if(Env::has('sadd')) { $client->handle_request($liste,Env::get('sadd'),4,''); /* 4 = SUBSCRIBE */ header("Location: {$_SERVER['PHP_SELF']}?liste=$liste"); } if(Post::has('sdel')) { $client->handle_request($liste,Post::get('sdel'),2,Post::get('reason')); /* 2 = REJECT */ } if(Env::has('mid')) { $mid = Env::get('mid'); $mail = $client->get_pending_mail($liste, $mid); $reason = ''; $prenom = Session::get('prenom'); $nom = Session::get('nom'); if (Env::has('mok')) { $action = 1; /** 2 = ACCEPT **/ $subject = "Message accepté"; $append .= "a été accepté par $prenom $nom.\n"; } elseif (Env::has('mno')) { $action = 2; /** 2 = REJECT **/ $subject = "Message refusé"; $reason = Post::get('reason'); $append = "a été refusé par $prenom $nom avec la raison :\n\n" . $reason; } elseif (Env::has('mdel')) { $action = 3; /** 3 = DISCARD **/ $subject = "Message supprimé"; $append = "a été supprimé par $prenom $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/diogenes.hermes.inc.php'); $mailer = new HermesMailer(); $mailer->addTo("$liste-owner@{$domain}"); $mailer->setFrom("$liste-bounces@{$domain}"); $mailer->addHeader('Reply-To', "$liste-owner@{$domain}"); $mailer->setSubject($subject); $mailer->setTxtBody(wordwrap($texte,72)); $mailer->send(); Get::kill('mid'); } if(Get::has('mid') && is_array($mail)) { $msg = file_get_contents('/etc/mailman/fr/refuse.txt'); $msg = str_replace("%(adminaddr)s","$liste-owner@{$domain}", $msg); $msg = str_replace("%(request)s","<< SUJET DU MAIL >>", $msg); $msg = str_replace("%(reason)s","<< TON EXPLICATION >>", $msg); $msg = str_replace("%(listname)s","$liste", $msg); $page->assign('msg', $msg); $page->changeTpl('listes/moderate_mail.tpl'); $page->assign_by_ref('mail', $mail); $page->run(); } } elseif (Env::has('sid')) { if(list($subs,$mails) = $client->get_pending_ops($liste)) { foreach($subs as $user) { if ($user['id'] == Env::get('sid')) { $page->changeTpl('listes/moderate_sub.tpl'); $page->assign('del_user',$user); $page->run(); } } } } 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"); } $page->run(); ?>