changeset 41f05309aca1 in /home/hg/repos/gajim

branches: gtk3
details:http://hg.gajim.org/gajim?cmd=changeset;node=41f05309aca1
description: fix privacy lists: Don't use several time the same order number. 
Fixes #7352

diffstat:

 src/common/connection.py |  14 ++++++++++++--
 src/groupchat_control.py |   6 ++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

diffs (54 lines):

diff -r 02183268dc3b -r 41f05309aca1 src/common/connection.py
--- a/src/common/connection.py  Sat May 25 20:53:36 2013 +0200
+++ b/src/common/connection.py  Sun May 26 12:58:19 2013 +0200
@@ -1603,6 +1603,14 @@
         iq.setQuery().setTag('active', {'name': name})
         self.connection.send(iq)
 
+    def get_max_blocked_list_order(self):
+        max_order = 0
+        for rule in self.blocked_list:
+            order = int(rule['order'])
+            if order > max_order:
+                max_order = order
+        return max_order
+
     def block_contacts(self, contact_list, message):
         if not self.privacy_rules_supported:
             if self.blocking_supported: #XEP-0191
@@ -1616,7 +1624,8 @@
             return
         for contact in contact_list:
             self.send_custom_status('offline', message, contact.jid)
-            new_rule = {'order': '1', 'type': 'jid', 'action': 'deny',
+            max_order = self.get_max_blocked_list_order()
+            new_rule = {'order': str(max_order + 1), 'type': 'jid', 'action': 
'deny',
                 'value' : contact.jid, 'child': ['message', 'iq',
                 'presence-out']}
             self.blocked_list.append(new_rule)
@@ -1672,7 +1681,8 @@
         self.blocked_groups.append(group)
         for contact in contact_list:
             self.send_custom_status('offline', message, contact.jid)
-        new_rule = {'order': '1', 'type': 'group', 'action': 'deny',
+        max_order = self.get_max_blocked_list_order()
+        new_rule = {'order': str(max_order + 1), 'type': 'group', 'action': 
'deny',
             'value' : group, 'child': ['message', 'iq', 'presence-out']}
         self.blocked_list.append(new_rule)
         self.set_privacy_list('block', self.blocked_list)
diff -r 02183268dc3b -r 41f05309aca1 src/groupchat_control.py
--- a/src/groupchat_control.py  Sat May 25 20:53:36 2013 +0200
+++ b/src/groupchat_control.py  Sun May 26 12:58:19 2013 +0200
@@ -2772,8 +2772,10 @@
         connection = gajim.connections[self.account]
         if fjid in connection.blocked_contacts:
             return
-        new_rule = {'order': '1', 'type': 'jid', 'action': 'deny',
-            'value' : fjid, 'child': ['message', 'iq', 'presence-out']}
+        max_order = connection.get_max_blocked_list_order()
+        new_rule = {'order': str(max_order + 1), 'type': u'jid',
+            'action': u'deny', 'value' : fjid, 'child': ['message', 'iq',
+            'presence-out']}
         connection.blocked_list.append(new_rule)
         connection.blocked_contacts.append(fjid)
         self.draw_contact(nick)
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to