X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Flists.php;h=544feedb9df77b8a6172713f900ca59345e4a9ce;hb=a5878ac19cc6ea75a753470cf68b7d2180d6cd51;hp=b2bacc0c01a09fa6574757aa55cd5114c4ebdfcc;hpb=834fd0f608437a2621e437225a0f779b0cad25c8;p=platal.git diff --git a/modules/lists.php b/modules/lists.php index b2bacc0..544feed 100644 --- a/modules/lists.php +++ b/modules/lists.php @@ -1,6 +1,6 @@ trig('champs «addresse souhaitée» vide'); + $page->trig('champs «adresse souhaitée» vide'); } if (!preg_match("/^[a-zA-Z0-9\-]*$/", $liste)) { $page->trig('le nom de la liste ne doit contenir que des lettres non accentuées, chiffres et tirets'); @@ -218,7 +218,7 @@ class ListsModule extends PLModule $page->trig('cet alias est déjà pris'); } - if (!Post::v(desc)) { + if (!Post::v('desc')) { $page->trig('le sujet est vide'); } @@ -339,7 +339,7 @@ class ListsModule extends PLModule if (list($det) = $this->client->get_members($liste)) { if (substr($liste,0,5) != 'promo' && ($det['ins'] || $det['priv']) && !$det['own'] && ($det['sub'] < 2)) { - $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter"); + $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter."); } $get = Array('listname' => $liste, 'domain' => $domain); if (Post::has('updateall')) { @@ -349,7 +349,7 @@ class ListsModule extends PLModule get_banana_params($get, null, $action, $artid); run_banana($page, 'MLBanana', $get); } else { - $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter"); + $page->kill("La liste n'existe pas ou tu n'as pas le droit de la consulter."); } } @@ -372,7 +372,7 @@ class ListsModule extends PLModule if (list($det) = $this->client->get_members($liste)) { if (substr($liste,0,5) != 'promo' && ($det['ins'] || $det['priv']) && !$det['own'] && ($det['sub'] < 2)) { - exit; + exit; } require_once('banana/ml.inc.php'); $banana = new MLBanana(S::v('forlife'), Array('listname' => $liste, 'domain' => $domain, 'action' => 'rss2')); @@ -418,7 +418,7 @@ class ListsModule extends PLModule } if (Post::has('sdel')) { /* 2 = REJECT */ $sub = $this->client->get_pending_sub($liste, Env::v('sdel')); - $this->client->handle_request($liste, Post::v('sdel'), 2, Post::v('reason')); + $this->client->handle_request($liste, Post::v('sdel'), 2, utf8_decode(Post::v('reason'))); $info = "refusée"; } if ($sub) { @@ -437,7 +437,7 @@ class ListsModule extends PLModule } if (Env::has('sadd')) { pl_redirect('lists/moderate/'.$liste); - } + } } if (Post::has('moderate_mails') && Post::has('select_mails')) { @@ -480,6 +480,11 @@ class ListsModule extends PLModule if (list($subs,$mails) = $this->get_pending_ops($domain, $liste)) { foreach ($mails as $key=>$mail) { $mails[$key]['stamp'] = strftime("%Y%m%d%H%M%S", $mail['stamp']); + if ($mail['fromx']) { + $page->assign('with_fromx', true); + } else { + $page->assign('with_nonfromx', true); + } } $page->assign_by_ref('subs', $subs); $page->assign_by_ref('mails', $mails); @@ -491,7 +496,7 @@ class ListsModule extends PLModule static public function no_login_callback($login) { require_once 'user.func.inc.php'; - global $list_unregistered; + global $list_unregistered, $globals; $users = get_not_registered_user($login, true); if ($users && $users->total()) { @@ -500,7 +505,10 @@ class ListsModule extends PLModule } $list_unregistered[$login] = $users; } else { - _default_user_callback($login); + list($name, $dom) = @explode('@', $login); + if ($dom == $globals->mail->domain || $dom == $globals->mail->domain2) { + _default_user_callback($login); + } } } @@ -548,7 +556,9 @@ class ListsModule extends PLModule if (Env::has('add_member')) { require_once('user.func.inc.php'); - $members = get_users_forlife_list(Env::v('add_member'), false, array('ListsModule', 'no_login_callback')); + $members = get_users_forlife_list(Env::v('add_member'), + false, + array('ListsModule', 'no_login_callback')); $arr = $this->client->mass_subscribe($liste, $members); if (is_array($arr)) { foreach($arr as $addr) { @@ -681,7 +691,7 @@ class ListsModule extends PLModule $page->changeTpl('lists/delete.tpl'); if (Post::v('valid') == 'OUI') { if ($this->client->delete_list($liste, Post::b('del_archive'))) { - foreach (array('', '-owner', '-admin', '-bounces') as $app) { + foreach (array('', '-owner', '-admin', '-bounces', '-unsubscribe') as $app) { XDB::execute("DELETE FROM $table WHERE type={?} AND alias={?}", $type, $liste.$app.$domain);