get_register second part

darcs-hash:20061026105944-86b55-186c984e426c5a3b396af082736b5b59fa44c07e.gz
This commit is contained in:
David Rousselie
2006-10-26 12:59:44 +02:00
parent fb554c7217
commit 49fd02310a
3 changed files with 52 additions and 25 deletions

View File

@@ -302,17 +302,19 @@ class JCLComponent(Component):
"""Send back register form to user
"""
self.__logger.debug("GET_REGISTER")
## TODO Lang
lang_class = self.__lang.get_lang_class_from_node(info_query.get_node())
base_from_jid = unicode(info_query.get_from().bare())
to_jid = info_query.get_to()
name = to_jid.node
info_query = info_query.make_result_response()
query = info_query.new_query("jabber:iq:register")
if to_jid and to_jid != self.jid:
self.db_connect()
self.get_reg_form_init(lang_class, \
self.account_class.select() # TODO
).attach_xml(query)
for _account in self.account_class.select(\
self.account_class.q.user_jid == base_from_jid \
and self.account_class.q.name == name):
self.get_reg_form_init(lang_class, \
_account).attach_xml(query)
self.db_disconnect()
else:
self.get_reg_form(lang_class).attach_xml(query)
@@ -569,8 +571,11 @@ class JCLComponent(Component):
def get_reg_form_init(self, lang_class, account):
"""Return register form for an existing account (update)
"""
# TODO
return X()
reg_form = self.get_reg_form(lang_class)
for (field_name, field) in reg_form.fields.items():
if hasattr(self.account_class, field_name):
field.value = getattr(self.account_class, field_name)
return reg_form
###########################################################################
# Virtual methods