Mailman don't understand UTF8 (Closes #761)
[platal.git] / modules / lists.php
index 040e818..544feed 100644 (file)
@@ -205,7 +205,7 @@ class ListsModule extends PLModule
         $liste = Post::v('liste');
 
         if (empty($liste)) {
-            $page->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');
@@ -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) {
@@ -496,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()) {
@@ -505,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);
+            }
         }
     }
 
@@ -553,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) {