Package spade :: Package xmppd :: Package modules :: Module jep0077
[hide private]
[frames] | no frames]

Source Code for Module spade.xmppd.modules.jep0077

 1  #!/usr/bin/python 
 2  # Distributed under the terms of GPL version 2 or any later 
 3  # Copyright (C) Alexey Nezhdanov 2004 
 4  # In-band-registration for xmppd.py 
 5   
 6  # $Id: jep0077.py,v 1.2 2004/09/19 20:20:05 snakeru Exp $ 
 7   
 8  from xmpp import * 
 9   
10 -class IBR(PlugIn):
11 NS=NS_REGISTER
12 - def plugin(self,server):
15
16 - def getRegInfoHandler(self,sess,stanza):
17 name=stanza['to'] 18 if name and name not in self._owner.servernames: 19 sess.send(Error(stanza,ERR_ITEM_NOT_FOUND)) 20 else: 21 iq=stanza.buildReply('result') 22 iq.T.query.NT.username 23 iq.T.query.NT.password 24 iq.T.query.NT.name 25 iq.T.query.NT.instructions='Please specify name and password to register with' 26 sess.send(iq) 27 raise NodeProcessed
28
29 - def setRegInfoHandler(self,sess,stanza):
30 domain_name=stanza['to'] 31 if domain_name and domain_name not in self._owner.servernames: 32 sess.send(Error(stanza,ERR_ITEM_NOT_FOUND)) 33 else: 34 #username=stanza.T.query.T.username 35 #password=stanza.T.query.T.password 36 try: 37 name=stanza.T.query.T.name.getData() 38 except: 39 name = "" # Turbo-Hack!!! 40 try: 41 servername=domain_name.getDomain() 42 except: 43 servername = self._owner.servernames[0] 44 try: 45 username=stanza.T.query.T.username.getData().lower() 46 password=stanza.T.query.T.password.getData() 47 except: 48 # TODO: Implement de-registration from server 49 sess.send(Error(stanza,ERR_NOT_ACCEPTABLE)) 50 raise NodeProcessed 51 52 if not(self._owner.AUTH.isuser(username, servername)): 53 if self._owner.DB.register_user(servername, username, password, name): 54 iq=stanza.buildReply('result') 55 sess.send(iq) 56 #self.DEBUG(str(self._owner.DB.printdb()),'info') 57 else: 58 sess.send(Error(stanza,ERR_CONFLICT)) 59 else: 60 sess.send(Error(stanza,ERR_CONFLICT)) 61 raise NodeProcessed
62