stanza.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. """
  2. SleekXMPP: The Sleek XMPP Library
  3. Copyright (C) 2011 Nathanael C. Fritz
  4. This file is part of SleekXMPP.
  5. See the file LICENSE for copying permission.
  6. """
  7. from sleekxmpp.xmlstream import ElementBase, ET, register_stanza_plugin
  8. class IqAuth(ElementBase):
  9. namespace = 'jabber:iq:auth'
  10. name = 'query'
  11. plugin_attrib = 'auth'
  12. interfaces = set(('fields', 'username', 'password', 'resource', 'digest'))
  13. sub_interfaces = set(('username', 'password', 'resource', 'digest'))
  14. plugin_tag_map = {}
  15. plugin_attrib_map = {}
  16. def get_fields(self):
  17. fields = set()
  18. for field in self.sub_interfaces:
  19. if self.xml.find('{%s}%s' % (self.namespace, field)) is not None:
  20. fields.add(field)
  21. return fields
  22. def set_resource(self, value):
  23. self._set_sub_text('resource', value, keep=True)
  24. def set_password(self, value):
  25. self._set_sub_text('password', value, keep=True)
  26. class AuthFeature(ElementBase):
  27. namespace = 'http://jabber.org/features/iq-auth'
  28. name = 'auth'
  29. plugin_attrib = 'auth'
  30. interfaces = set()
  31. plugin_tag_map = {}
  32. plugin_attrib_map = {}