From 13c9ba9b5b123b740534196a88fa335d94b20fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Wed, 15 Nov 2017 16:10:36 +0100 Subject: [PATCH] [omemo] Fix activating groupchat --- omemo/omemoplugin.py | 14 ++++++++------ omemo/ui.py | 17 +++-------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/omemo/omemoplugin.py b/omemo/omemoplugin.py index 715e405..3320913 100644 --- a/omemo/omemoplugin.py +++ b/omemo/omemoplugin.py @@ -154,7 +154,8 @@ class OmemoPlugin(GajimPlugin): def activate_encryption(self, chat_control): if isinstance(chat_control, GroupchatControl): - if chat_control.room_jid not in self.groupchat: + omemo_con = self.connections[chat_control.account] + if chat_control.room_jid not in omemo_con.groupchat: dialogs.ErrorDialog( _('Bad Configuration'), _('To use OMEMO in a Groupchat, the Groupchat should be' @@ -210,8 +211,8 @@ class OmemoPlugin(GajimPlugin): room = chat_control.room_jid missing = True own_jid = app.get_jid_from_account(account) - for nick in self.groupchat[room]: - real_jid = self.groupchat[room][nick] + for nick in con.groupchat[room]: + real_jid = con.groupchat[room][nick] if real_jid == own_jid: continue if not self.connections[account].are_keys_missing(real_jid): @@ -233,12 +234,13 @@ class OmemoPlugin(GajimPlugin): def new_fingerprints_available(self, chat_control): jid = chat_control.contact.jid account = chat_control.account + con = self.connections[account] omemo = self.get_omemo(account) if isinstance(chat_control, GroupchatControl): room_jid = chat_control.room_jid - if room_jid in self.groupchat: - for nick in self.groupchat[room_jid]: - real_jid = self.groupchat[room_jid][nick] + if room_jid in con.groupchat: + for nick in con.groupchat[room_jid]: + real_jid = con.groupchat[room_jid][nick] fingerprints = omemo.store. \ getNewFingerprints(real_jid) if fingerprints: diff --git a/omemo/ui.py b/omemo/ui.py index 0e5a122..2cbf229 100644 --- a/omemo/ui.py +++ b/omemo/ui.py @@ -208,22 +208,10 @@ class OMEMOConfigDialog(GajimPluginConfigDialog): def on_yes(checked, identity_key): state.store.setTrust(identity_key, State.TRUSTED) - try: - if self.plugin.ui_list[account]: - self.plugin.ui_list[account][jid]. \ - refresh_auth_lock_icon() - except: - log.debug('UI not available') self.update_context_list() def on_no(identity_key): state.store.setTrust(identity_key, State.UNTRUSTED) - try: - if jid in self.plugin.ui_list[account]: - self.plugin.ui_list[account][jid]. \ - refresh_auth_lock_icon() - except: - log.debug('UI not available') self.update_context_list() for path in paths: @@ -373,6 +361,7 @@ class FingerprintWindow(Gtk.Dialog): self.windowinstances = windowinstances self.account = self.contact.account.name self.plugin = plugin + self.con = plugin.connections[self.account] self.omemostate = self.plugin.get_omemo(self.account) self.own_jid = app.get_jid_from_account(self.account) Gtk.Dialog.__init__(self, @@ -498,8 +487,8 @@ class FingerprintWindow(Gtk.Dialog): trust_str = {0: 'False', 1: 'True', 2: 'Undecided'} if self.groupchat and self.notebook.get_current_page() == 0: contact_jids = [] - for nick in self.plugin.groupchat[contact_jid]: - real_jid = self.plugin.groupchat[contact_jid][nick] + for nick in self.con.groupchat[contact_jid]: + real_jid = self.con.groupchat[contact_jid][nick] if real_jid == self.own_jid: continue contact_jids.append(real_jid)