plugin XEP-0050: fixed UnknownGroupError management + "@ALL@" profile for status command

This commit is contained in:
Goffi 2014-02-13 18:50:56 +01:00
commit 5d29ffbdda

View file

@ -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: