preparation de la modif suivante ;)
[platal.git] / bin / lists.rpc.py
index 7f5a5f0..bb2353d 100755 (executable)
@@ -191,7 +191,7 @@ def to_forlife(email):
             return res
         else:
             return (None, None)
-    return (email, mbox)
+    return (email.lower(), mbox)
 
 ##
 # see /usr/lib/mailman/bin/rmlist
@@ -295,7 +295,7 @@ def get_lists(userdesc, perms, vhost, email=None):
     if email is None:
         udesc = userdesc
     else:
-        udesc = UserDesc(email, email, None, 0)
+        udesc = UserDesc(email.lower(), email.lower(), None, 0)
     prefix = vhost.lower()+VHOST_SEP
     names = Utils.list_names()
     names.sort()
@@ -391,6 +391,23 @@ def get_owners(userdesc, perms, vhost, listname):
 # owners procedures [ admin.php ]
 #
 
+def replace_email(userdesc, perms, vhost, listname, from_email, to_email):
+    try:
+        mlist = MailList.MailList(vhost+VHOST_SEP+listname.lower(), lock=0)
+    except:
+        return 0
+    try:
+        if not is_admin_on(userdesc, perms, mlist):
+            return 0
+
+        mlist.Lock()
+        mlist.ApprovedChangeMemberAddress(from_email.lower(), to_email.lower(), 0)
+        mlist.Save()
+        mlist.Unlock()
+        return 1
+    except:
+        return 0
+
 def mass_subscribe(userdesc, perms, vhost, listname, users):
     try:
         mlist = MailList.MailList(vhost+VHOST_SEP+listname.lower(), lock=0)
@@ -640,11 +657,15 @@ def get_bogo_level(userdesc, perms, vhost, listname):
             return 0
         if mlist.header_filter_rules == []:
             return 0
-        action = mlist.header_filter_rules[0][1]
-        if action == mm_cfg.HOLD:
-            return 1
-        if action == mm_cfg.DISCARD:
+        try:
+            action = mlist.header_filter_rules[1][1]
             return 2
+        except:
+            action = mlist.header_filter_rules[0][1]
+            if action == mm_cfg.HOLD:
+                return 1
+            if action == mm_cfg.DISCARD:
+                return 3
     except:
         return 0
 
@@ -660,6 +681,9 @@ def set_bogo_level(userdesc, perms, vhost, listname, level):
         if int(level) is 1:
             hfr.append(('X-Spam-Flag: Yes, tests=bogofilter', mm_cfg.HOLD, False))
         elif int(level) is 2:
+            hfr.append(('X-Spam-Flag: Yes, tests=bogofilter, spamicity=(0\.999999|1\.000000)', mm_cfg.DISCARD, False))
+            hfr.append(('X-Spam-Flag: Yes, tests=bogofilter', mm_cfg.HOLD, False))
+        elif int(level) is 3:
             hfr.append(('X-Spam-Flag: Yes, tests=bogofilter', mm_cfg.DISCARD, False))
         if mlist.header_filter_rules != hfr:
             mlist.Lock()
@@ -946,6 +970,7 @@ server.register_function(get_members)
 server.register_function(get_members_limit)
 server.register_function(get_owners)
 # admin.php
+server.register_function(replace_email)
 server.register_function(mass_subscribe)
 server.register_function(mass_unsubscribe)
 server.register_function(add_owner)