X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Flists.php;h=bc6078b77a06869d030b017adc286ae50bc5542b;hb=3dad95dda6e1f531a98ef326c6c43fde036d4727;hp=6ed325ce01b8312fd54e28e2e61162a08daf8fc2;hpb=fac9cf6a6bb4cfde862dc271c6256b8bd9751320;p=platal.git diff --git a/modules/lists.php b/modules/lists.php index 6ed325c..bc6078b 100644 --- a/modules/lists.php +++ b/modules/lists.php @@ -110,7 +110,7 @@ class ListsModule extends PLModule if ($promo >= 1900 and $promo < 2100) { $this->client->subscribe("promo$promo"); } else { - $page->trig("promo incorrecte, il faut une promo sur 4 chiffres."); + $page->trigSuccess("promo incorrecte, il faut une promo sur 4 chiffres."); } } $listes = $this->client->get_lists(); @@ -205,29 +205,29 @@ class ListsModule extends PLModule $liste = Post::v('liste'); if (empty($liste)) { - $page->trig('champs «adresse souhaitée» vide'); + $page->trigError('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'); + $page->trigError('le nom de la liste ne doit contenir que des lettres non accentuées, chiffres et tirets'); } $res = XDB::query("SELECT COUNT(*) FROM aliases WHERE alias={?}", $liste); $n = $res->fetchOneCell(); if ($n) { - $page->trig('cet alias est déjà pris'); + $page->trigError('cet alias est déjà pris'); } if (!Post::v('desc')) { - $page->trig('le sujet est vide'); + $page->trigError('le sujet est vide'); } if (!count($owners)) { - $page->trig('pas de gestionnaire'); + $page->trigError('pas de gestionnaire'); } if (count($members)<4) { - $page->trig('pas assez de membres'); + $page->trigError('pas assez de membres'); } if (!$page->nb_errs()) { @@ -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) { @@ -562,7 +562,7 @@ class ListsModule extends PLModule $arr = $this->client->mass_subscribe($liste, $members); if (is_array($arr)) { foreach($arr as $addr) { - $page->trig("{$addr[0]} inscrit."); + $page->trigSuccess("{$addr[0]} inscrit."); } } } @@ -583,7 +583,7 @@ class ListsModule extends PLModule if ($owners) { foreach ($owners as $login) { if ($this->client->add_owner($liste, $login)) { - $page->trig($alias." ajouté aux modérateurs."); + $page->trigSuccess($alias." ajouté aux modérateurs."); } } } @@ -631,7 +631,16 @@ class ListsModule extends PLModule if (Post::has('submit')) { $values = $_POST; $values = array_map('utf8_decode', $values); - $this->client->set_bogo_level($liste, intval($values['bogo_level'])); + $spamlevel = intval($values['bogo_level']); + $unsurelevel = intval($values['unsure_level']); + if ($spamlevel == 0) { + $unsurelevel = 0; + } + if ($spamlevel > 3 || $spamlevel < 0 || $unsurelevel < 0 || $unsurelevel > 1) { + $page->trigError("Réglage de l'antispam non valide"); + } else { + $this->client->set_bogo_level($liste, ($spamlevel << 1) + $unsurelevel); + } switch($values['moderate']) { case '0': $values['generic_nonmember_action'] = 0; @@ -664,7 +673,9 @@ class ListsModule extends PLModule if (list($details,$options) = $this->client->get_owner_options($liste)) { $page->assign_by_ref('details', $details); $page->assign_by_ref('options', $options); - $page->assign('bogo_level', $this->client->get_bogo_level($liste)); + $bogo_level = intval($this->client->get_bogo_level($liste)); + $page->assign('unsure_level', $bogo_level & 1); + $page->assign('bogo_level', $bogo_level >> 1); } else { $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer"); }