changeset 055dfd32975c in /home/hg/repos/gajim
author: Yann Leboulanger asterix@lagaule.org branches: details:http://hg.gajim.org/gajim?cmd=changeset;node=055dfd32975c description: show error message when we try to connect anonymously to a server that doesn't support anonymous connection. Fixes #8138
diffstat:
src/common/connection.py | 6 ++++++ src/common/connection_handlers_events.py | 4 ++++ src/gui_interface.py | 8 ++++++++ 3 files changed, 18 insertions(+), 0 deletions(-)
diffs (55 lines):
diff -r e24804289058 -r 055dfd32975c src/common/connection.py --- a/src/common/connection.py Thu Aug 27 14:53:18 2015 +0200 +++ b/src/common/connection.py Mon Aug 31 13:47:18 2015 +0200 @@ -2860,6 +2860,12 @@ self.connection.send(iq)
def get_password(self, callback, type_): + if gajim.config.get_per('accounts', self.name, 'anonymous_auth') and \ + type_ != 'ANONYMOUS': + gajim.nec.push_incoming_event(NonAnonymousServerErrorEvent(None, + conn=self)) + self._on_disconnected() + return self.pasword_callback = (callback, type_) if type_ == 'X-MESSENGER-OAUTH2': client_id = gajim.config.get_per('accounts', self.name, diff -r e24804289058 -r 055dfd32975c src/common/connection_handlers_events.py --- a/src/common/connection_handlers_events.py Thu Aug 27 14:53:18 2015 +0200 +++ b/src/common/connection_handlers_events.py Mon Aug 31 13:47:18 2015 +0200 @@ -1924,6 +1924,10 @@ name = 'privacy-list-active-default' base_network_events = []
+class NonAnonymousServerErrorEvent(nec.NetworkIncomingEvent): + name = 'non-anonymous-server-error' + base_network_events = [] + class VcardReceivedEvent(nec.NetworkIncomingEvent): name = 'vcard-received' base_network_events = [] diff -r e24804289058 -r 055dfd32975c src/gui_interface.py --- a/src/gui_interface.py Thu Aug 27 14:53:18 2015 +0200 +++ b/src/gui_interface.py Mon Aug 31 13:47:18 2015 +0200 @@ -1376,6 +1376,13 @@ self.instances[account]['online_dialog']['ssl_error'].set_title( _('SSL Certificate Verification for %s') % account)
+ def handle_event_non_anonymous_server(self, obj): + account = obj.conn.name + server = gajim.config.get_per('accounts', account, 'hostname') + dialogs.ErrorDialog(_('Non Anonymous Server'), sectext='Server "%s"' + 'does not support anonymous connection' % server, + transient_for=self.roster.window) + def handle_event_fingerprint_error(self, obj): # ('FINGERPRINT_ERROR', account, (new_fingerprint_sha1,new_fingerprint_sha256,)) account = obj.conn.name @@ -1579,6 +1586,7 @@ [self.handle_event_roster_item_exchange], 'signed-in': [self.handle_event_signed_in], 'ssl-error': [self.handle_event_ssl_error], + 'non-anonymous-server-error': [self.handle_event_non_anonymous_server], 'stream-conflict-received': [self.handle_event_resource_conflict], 'subscribe-presence-received': [ self.handle_event_subscribe_presence],