diff options
-rw-r--r-- | slixmpp/plugins/__init__.py | 2 | ||||
-rw-r--r-- | slixmpp/plugins/xep_0045/muc.py | 2 | ||||
-rw-r--r-- | slixmpp/plugins/xep_0203/stanza.py | 4 | ||||
-rw-r--r-- | slixmpp/plugins/xep_0356/stanza.py | 11 | ||||
-rw-r--r-- | slixmpp/xmlstream/xmlstream.py | 2 | ||||
-rw-r--r-- | tests/test_stanza_xep_0356.py | 2 | ||||
-rw-r--r-- | tests/test_stream_xep_0356.py | 4 |
7 files changed, 19 insertions, 8 deletions
diff --git a/slixmpp/plugins/__init__.py b/slixmpp/plugins/__init__.py index 55627113..cc98255e 100644 --- a/slixmpp/plugins/__init__.py +++ b/slixmpp/plugins/__init__.py @@ -1,4 +1,3 @@ - # Slixmpp: The Slick XMPP Library # Copyright (C) 2010 Nathanael C. Fritz # This file is part of Slixmpp. @@ -93,6 +92,7 @@ __all__ = [ 'xep_0335', # JSON Containers 'xep_0352', # Client State Indication 'xep_0353', # Jingle Message Initiation + 'xep_0356', # Privileged entity 'xep_0359', # Unique and Stable Stanza IDs 'xep_0363', # HTTP File Upload 'xep_0369', # MIX-CORE diff --git a/slixmpp/plugins/xep_0045/muc.py b/slixmpp/plugins/xep_0045/muc.py index e5971bee..90cb73d7 100644 --- a/slixmpp/plugins/xep_0045/muc.py +++ b/slixmpp/plugins/xep_0045/muc.py @@ -493,6 +493,8 @@ class XEP_0045(BasePlugin): """ if affiliation not in AFFILIATIONS: raise ValueError('%s is not a valid affiliation' % affiliation) + if affiliation == 'outcast' and not jid: + raise ValueError('Outcast affiliation requires a using a jid') if not any((jid, nick)): raise ValueError('One of jid or nick must be set') iq = self.xmpp.make_iq_set(ito=room, ifrom=ifrom) diff --git a/slixmpp/plugins/xep_0203/stanza.py b/slixmpp/plugins/xep_0203/stanza.py index f173d41c..a84cb52f 100644 --- a/slixmpp/plugins/xep_0203/stanza.py +++ b/slixmpp/plugins/xep_0203/stanza.py @@ -30,6 +30,10 @@ class Delay(ElementBase): def set_stamp(self, value): if isinstance(value, dt.datetime): + if value.tzinfo is None: + raise ValueError(f'Datetime provided without timezone information: {value}') + if value.tzinfo != dt.timezone.utc: + value = value.astimezone(dt.timezone.utc) value = xep_0082.format_datetime(value) self._set_attr('stamp', value) diff --git a/slixmpp/plugins/xep_0356/stanza.py b/slixmpp/plugins/xep_0356/stanza.py index ef01ee3e..46f1523a 100644 --- a/slixmpp/plugins/xep_0356/stanza.py +++ b/slixmpp/plugins/xep_0356/stanza.py @@ -7,7 +7,7 @@ from slixmpp.plugins.xep_0297 import Forwarded class Privilege(ElementBase): - namespace = "urn:xmpp:privilege:1" + namespace = "urn:xmpp:privilege:2" name = "privilege" plugin_attrib = "privilege" @@ -24,7 +24,10 @@ class Privilege(ElementBase): def presence(self): return self.permission("presence") - + + def iq(self): + return self.permission("iq") + def add_perm(self, access, type): # This should only be needed for servers, so maybe out of scope for slixmpp perm = Perm() @@ -34,7 +37,7 @@ class Privilege(ElementBase): class Perm(ElementBase): - namespace = "urn:xmpp:privilege:1" + namespace = "urn:xmpp:privilege:2" name = "perm" plugin_attrib = "perm" plugin_multi_attrib = "perms" @@ -44,4 +47,4 @@ class Perm(ElementBase): def register(): register_stanza_plugin(Message, Privilege) register_stanza_plugin(Privilege, Forwarded) - register_stanza_plugin(Privilege, Perm, iterable=True)
\ No newline at end of file + register_stanza_plugin(Privilege, Perm, iterable=True) diff --git a/slixmpp/xmlstream/xmlstream.py b/slixmpp/xmlstream/xmlstream.py index 06d48f5c..18464ccd 100644 --- a/slixmpp/xmlstream/xmlstream.py +++ b/slixmpp/xmlstream/xmlstream.py @@ -809,6 +809,8 @@ class XMLStream(asyncio.BaseProtocol): self.ssl_context.verify_mode = ssl.CERT_REQUIRED self.ssl_context.load_verify_locations(cafile=ca_cert) + else: + self.ssl_context.set_default_verify_paths() return self.ssl_context diff --git a/tests/test_stanza_xep_0356.py b/tests/test_stanza_xep_0356.py index ef116db2..cf14ccba 100644 --- a/tests/test_stanza_xep_0356.py +++ b/tests/test_stanza_xep_0356.py @@ -13,7 +13,7 @@ class TestPermissions(SlixTest): def testAdvertisePermission(self): xmlstring = """ <message from='capulet.net' to='pubub.capulet.lit'> - <privilege xmlns='urn:xmpp:privilege:1'> + <privilege xmlns='urn:xmpp:privilege:2'> <perm access='roster' type='both'/> <perm access='message' type='outgoing'/> <perm access='presence' type='managed_entity'/> diff --git a/tests/test_stream_xep_0356.py b/tests/test_stream_xep_0356.py index 2949daad..e2ce9569 100644 --- a/tests/test_stream_xep_0356.py +++ b/tests/test_stream_xep_0356.py @@ -31,7 +31,7 @@ class TestPermissions(SlixTest): self.recv( """ <message from='capulet.net' to='pubub.capulet.lit' id='54321'> - <privilege xmlns='urn:xmpp:privilege:1'> + <privilege xmlns='urn:xmpp:privilege:2'> <perm access='roster' type='both'/> <perm access='message' type='outgoing'/> </privilege> @@ -95,7 +95,7 @@ class TestPermissions(SlixTest): def testMakeOutgoingMessage(self): xmlstring = """ <message xmlns="jabber:component:accept" from='pubsub.capulet.lit' to='capulet.net'> - <privilege xmlns='urn:xmpp:privilege:1'> + <privilege xmlns='urn:xmpp:privilege:2'> <forwarded xmlns='urn:xmpp:forward:0'> <message from="juliet@capulet.lit" to="romeo@montague.lit" xmlns="jabber:client"> <body>I do not hate you</body> |