From 5d29ffbddaf4a4d9e7c71c88e28e5ee0ca6c1b4b Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 13 Feb 2014 18:50:56 +0100 Subject: [PATCH] plugin XEP-0050: fixed UnknownGroupError management + "@ALL@" profile for status command --- src/plugins/plugin_xep_0050.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/plugin_xep_0050.py b/src/plugins/plugin_xep_0050.py index ae33560d..b39e3ed2 100644 --- a/src/plugins/plugin_xep_0050.py +++ b/src/plugins/plugin_xep_0050.py @@ -102,7 +102,10 @@ class AdHocCommand(XMPPHandler): return False allowed = set(self.allowed_jids) for group in self.allowed_groups: - allowed.update(self.client.roster.getJidsFromGroup(group)) + try: + allowed.update(self.client.roster.getJidsFromGroup(group)) + except exceptions.UnknownGroupError: + warning(_("The groups [%(group)s] is unknown for profile [%(profile)s])" % {'group':group, 'profile':self.client.profile})) if requestor.userhostJID() in allowed: return True return False @@ -218,7 +221,7 @@ class XEP_0050(object): return XEP_0050_handler(self) def profileConnected(self, profile): - self.addAdHocCommand(self._statusCallback, _("Status"), profile_key="@ALL@") + self.addAdHocCommand(self._statusCallback, _("Status"), profile_key=profile) def profileDisconnected(self, profile): try: @@ -413,6 +416,7 @@ class XEP_0050(object): @param profile_key: profile key associated with this command, @ALL@ means can be accessed with every profiles @return: node of the added command, useful to remove the command later """ + # FIXME: "@ALL@" for profile_key seems useless and dangerous node = node.strip() if not node: