Owners can modify subscriptions/affiliations. With tests.
94% coverage for the main pubsub plugin! (91% including stanzas)
This commit is contained in:
@@ -400,8 +400,8 @@ class xep_0060(base_plugin):
|
||||
affiliations = []
|
||||
|
||||
for jid, affiliation in affiliations:
|
||||
aff = stanza.pubsub.Affiliation()
|
||||
aff['jid'] = user_jid
|
||||
aff = self.stanza.OwnerAffiliation()
|
||||
aff['jid'] = jid
|
||||
aff['affiliation'] = affiliation
|
||||
iq['pubsub_owner']['affiliations'].append(aff)
|
||||
|
||||
@@ -416,8 +416,8 @@ class xep_0060(base_plugin):
|
||||
subscriptions = []
|
||||
|
||||
for jid, subscription in subscriptions:
|
||||
sub = self.stanza.Subscription()
|
||||
sub['jid'] = user_jid
|
||||
sub = self.stanza.OwnerSubscription()
|
||||
sub['jid'] = jid
|
||||
sub['subscription'] = subscription
|
||||
iq['pubsub_owner']['subscriptions'].append(sub)
|
||||
|
||||
|
@@ -41,7 +41,7 @@ registerStanzaPlugin(DefaultConfig, xep_0004.Form)
|
||||
|
||||
class OwnerAffiliations(Affiliations):
|
||||
namespace = 'http://jabber.org/protocol/pubsub#owner'
|
||||
interfaces = set(('node'))
|
||||
interfaces = set(('node',))
|
||||
plugin_attrib_map = {}
|
||||
plugin_tag_map = {}
|
||||
|
||||
@@ -49,7 +49,6 @@ class OwnerAffiliations(Affiliations):
|
||||
if not isinstance(affiliation, OwnerAffiliation):
|
||||
raise TypeError
|
||||
self.xml.append(affiliation.xml)
|
||||
return self.affiliations.append(affiliation)
|
||||
|
||||
registerStanzaPlugin(PubsubOwner, OwnerAffiliations)
|
||||
|
||||
@@ -59,6 +58,8 @@ class OwnerAffiliation(Affiliation):
|
||||
plugin_attrib_map = {}
|
||||
plugin_tag_map = {}
|
||||
|
||||
registerStanzaPlugin(OwnerAffiliations, OwnerAffiliation, iterable=True)
|
||||
|
||||
class OwnerConfigure(Configure):
|
||||
name = 'configure'
|
||||
plugin_attrib = 'configure'
|
||||
@@ -126,7 +127,6 @@ class OwnerSubscriptions(Subscriptions):
|
||||
if not isinstance(subscription, OwnerSubscription):
|
||||
raise TypeError
|
||||
self.xml.append(subscription.xml)
|
||||
return self.subscriptions.append(subscription)
|
||||
|
||||
registerStanzaPlugin(PubsubOwner, OwnerSubscriptions)
|
||||
|
||||
@@ -142,4 +142,6 @@ class OwnerSubscription(ElementBase):
|
||||
self._setAttr('jid', str(value))
|
||||
|
||||
def getJid(self):
|
||||
return JID(self._getAttr('from'))
|
||||
return JID(self._getAttr('jid'))
|
||||
|
||||
registerStanzaPlugin(OwnerSubscriptions, OwnerSubscription, iterable=True)
|
||||
|
Reference in New Issue
Block a user