From 5fd0e076bd4afb72f29c11e1b9c6109010f507a0 Mon Sep 17 00:00:00 2001 From: Denis Fomin <fominde@gmail.com> Date: Tue, 29 Mar 2011 17:18:50 +0400 Subject: [PATCH] Prevent join groupchat (using local account). Fixes #6849 --- src/dialogs.py | 4 ++++ src/gajim-remote.py | 3 ++- src/groupchat_control.py | 4 ++-- src/remote_control.py | 10 ++++++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/dialogs.py b/src/dialogs.py index d1ee2ca00e..8ce8e26165 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -2466,6 +2466,10 @@ class JoinGroupchatWindow: if self.automatic: gajim.automatic_rooms[self.account][room_jid] = self.automatic + if gajim.connections[self.account].is_zeroconf: + ErrorDialog(_('Impossible join groupchat'), + _('local account does not support groupchats.')) + return gajim.interface.join_gc_room(self.account, room_jid, nickname, password) self.window.destroy() diff --git a/src/gajim-remote.py b/src/gajim-remote.py index 96895561ea..1688857685 100644 --- a/src/gajim-remote.py +++ b/src/gajim-remote.py @@ -339,7 +339,8 @@ class GajimRemote: Print retrieved result to the output """ if res is not None: - if self.command in ('open_chat', 'send_chat_message', 'send_single_message', 'start_chat'): + if self.command in ('open_chat', 'send_chat_message', + 'send_single_message', 'start_chat'): if self.command in ('send_message', 'send_single_message'): self.argv_len -= 2 diff --git a/src/groupchat_control.py b/src/groupchat_control.py index bbd18cb4c3..f5a6465581 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -1897,8 +1897,8 @@ class GroupchatControl(ChatControlBase): # logs. We do it only when connected because if connection was lost # there may be new messages since disconnection. gajim.connections[self.account].gc_got_disconnected(self.room_jid) - gajim.connections[self.account].send_gc_status(self.nick, self.room_jid, - show='offline', status=status) + gajim.connections[self.account].send_gc_status(self.nick, + self.room_jid, show='offline', status=status) nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid) for nick in nick_list: # Update pm chat window diff --git a/src/remote_control.py b/src/remote_control.py index 4dfe18f604..7f47b94c30 100644 --- a/src/remote_control.py +++ b/src/remote_control.py @@ -901,10 +901,16 @@ class SignalObject(dbus.service.Object): accounts = gajim.connections.keys() for acct in accounts: if gajim.account_is_connected(acct): - account = acct - break + if not gajim.connections[acct].is_zeroconf: + account = acct + break if not account: return + + if gajim.connections[account].is_zeroconf: + # zeroconf not support groupchats + return + if not nick: nick = '' gajim.interface.instances[account]['join_gc'] = \ -- GitLab