unhandled iq's should only respond to errors when type=get/set
This commit is contained in:
parent
986255eefc
commit
6b130eb947
2 changed files with 10 additions and 6 deletions
|
@ -223,12 +223,15 @@ class xep_0045(base.base_plugin):
|
|||
return False
|
||||
return True
|
||||
|
||||
def setAffiliation(self, room, jid, affiliation='member'):
|
||||
def setAffiliation(self, room, jid=None, nick=None, affiliation='member'):
|
||||
""" Change room affiliation."""
|
||||
if affiliation not in ('outcast', 'member', 'admin', 'owner', 'none'):
|
||||
raise TypeError
|
||||
query = ET.Element('{http://jabber.org/protocol/muc#admin}query')
|
||||
item = ET.Element('item', {'affiliation':affiliation, 'jid':jid})
|
||||
if nick is not None:
|
||||
item = ET.Element('item', {'affiliation':affiliation, 'nick':nick})
|
||||
else:
|
||||
item = ET.Element('item', {'affiliation':affiliation, 'jid':jid})
|
||||
query.append(item)
|
||||
iq = self.xmpp.makeIqSet(query)
|
||||
iq['to'] = room
|
||||
|
|
|
@ -20,10 +20,11 @@ class Iq(RootStanza):
|
|||
self['id'] = '0'
|
||||
|
||||
def unhandled(self):
|
||||
self.reply()
|
||||
self['error']['condition'] = 'feature-not-implemented'
|
||||
self['error']['text'] = 'No handlers registered for this request.'
|
||||
self.send()
|
||||
if self['type'] in ('get', 'set'):
|
||||
self.reply()
|
||||
self['error']['condition'] = 'feature-not-implemented'
|
||||
self['error']['text'] = 'No handlers registered for this request.'
|
||||
self.send()
|
||||
|
||||
def result(self):
|
||||
self['type'] = 'result'
|
||||
|
|
Loading…
Reference in a new issue