Skip to content

Instantly share code, notes, and snippets.

@legastero
Created May 22, 2010 00:38
Show Gist options
  • Save legastero/409622 to your computer and use it in GitHub Desktop.
Save legastero/409622 to your computer and use it in GitHub Desktop.
def plugin_init(self):
self.description = "In-Band Registration"
self.xep = "0077"
self.form_fields = ('username', 'password')
... remainder of plugin_init
...
def __handleRegistration(self, iq):
if iq['type'] == 'get':
# Registration form requested
userData = self.backend[iq['from'].bare]
self.sendRegistrationForm(iq, userData)
def setForm(self, *fields):
self.form_fields = fields
def sendRegistrationForm(self, iq, userData=None):
reg = iq['register']
if userData is None:
userData = {}
else:
reg['registered'] = True
for field in self.form_fields:
data = userData.get(field, '')
if data:
# Add field with existing data
reg[field] = data
else:
# Add a blank field
reg.addField(field)
iq.reply().setPayload(reg.xml)
iq.send()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment