slixmpp.plugins.xep_0257.stanza

1.6 Documentation

Contents

Source code for slixmpp.plugins.xep_0257.stanza

"""
    Slixmpp: The Slick XMPP Library
    Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
    This file is part of Slixmpp.

    See the file LICENSE for copying permission.
"""

from slixmpp.xmlstream import ElementBase, ET, register_stanza_plugin


[docs]class Certs(ElementBase): name = 'items' namespace = 'urn:xmpp:saslcert:1' plugin_attrib = 'sasl_certs' interfaces = set()
[docs]class CertItem(ElementBase): name = 'item' namespace = 'urn:xmpp:saslcert:1' plugin_attrib = 'item' plugin_multi_attrib = 'items' interfaces = {'name', 'x509cert', 'users'} sub_interfaces = {'name', 'x509cert'}
[docs] def get_users(self): resources = self.xml.findall('{%s}users/{%s}resource' % ( self.namespace, self.namespace)) return {res.text for res in resources}
[docs] def set_users(self, values): users = self.xml.find('{%s}users' % self.namespace) if users is None: users = ET.Element('{%s}users' % self.namespace) self.xml.append(users) for resource in values: res = ET.Element('{%s}resource' % self.namespace) res.text = resource users.append(res)
[docs] def del_users(self): users = self.xml.find('{%s}users' % self.namespace) if users is not None: self.xml.remove(users)
[docs]class AppendCert(ElementBase): name = 'append' namespace = 'urn:xmpp:saslcert:1' plugin_attrib = 'sasl_cert_append' interfaces = {'name', 'x509cert', 'cert_management'} sub_interfaces = {'name', 'x509cert'}
[docs] def get_cert_management(self): manage = self.xml.find('{%s}no-cert-management' % self.namespace) return manage is None
[docs] def set_cert_management(self, value): self.del_cert_management() if not value: manage = ET.Element('{%s}no-cert-management' % self.namespace) self.xml.append(manage)
[docs] def del_cert_management(self): manage = self.xml.find('{%s}no-cert-management' % self.namespace) if manage is not None: self.xml.remove(manage)
[docs]class DisableCert(ElementBase): name = 'disable' namespace = 'urn:xmpp:saslcert:1' plugin_attrib = 'sasl_cert_disable' interfaces = {'name'} sub_interfaces = interfaces
[docs]class RevokeCert(ElementBase): name = 'revoke' namespace = 'urn:xmpp:saslcert:1' plugin_attrib = 'sasl_cert_revoke' interfaces = {'name'} sub_interfaces = interfaces
register_stanza_plugin(Certs, CertItem, iterable=True)

Contents