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)