comparison src/plugins/plugin_misc_register_account.py @ 1088:b29452cab50b

core, memory, plugins, stdui, frontends: look for DNS SRV records when server is not specified: - fix bug 3 - modify "Connection" params: - rename "Server" to "Force server" and "Port" to "Force port" - set the default value to empty string for both
author souliane <souliane@mailoo.org>
date Mon, 23 Jun 2014 00:44:10 +0200
parents 85c110c0be86
children 8e0072754413
comparison
equal deleted inserted replaced
1087:b3b7a2863060 1088:b29452cab50b
53 self.__register_account_id = host.registerCallback(self._registerConfirmation, with_data=True) 53 self.__register_account_id = host.registerCallback(self._registerConfirmation, with_data=True)
54 54
55 def registerNewAccountCB(self, data, profile): 55 def registerNewAccountCB(self, data, profile):
56 """Called when the use click on the "New account" button.""" 56 """Called when the use click on the "New account" button."""
57 session_data = {} 57 session_data = {}
58 for param in ('JabberID', 'Password', 'Port', 'Server'): 58 for param in ('JabberID', 'Password', C.FORCE_PORT_PARAM, C.FORCE_SERVER_PARAM):
59 try: 59 try:
60 session_data[param] = data["%s%s%s%s" % (SAT_FORM_PREFIX, "Connection", SAT_PARAM_SEPARATOR, param)] 60 session_data[param] = data["%s%s%s%s" % (SAT_FORM_PREFIX, "Connection", SAT_PARAM_SEPARATOR, param)]
61 except KeyError: 61 except KeyError:
62 if param == 'Port': 62 if param == C.FORCE_PORT_PARAM:
63 session_data[param] = 5222 63 session_data[param] = 5222
64 64
65 for param in ('JabberID', 'Password', 'Server'): 65 for param in ('JabberID', 'Password', C.FORCE_SERVER_PARAM):
66 if not session_data[param]: 66 if not session_data[param]:
67 form_ui = xml_tools.XMLUI("popup", title=D_("Missing values")) 67 form_ui = xml_tools.XMLUI("popup", title=D_("Missing values"))
68 form_ui.addText(D_("No user, password or server given: can't register new account.")) 68 form_ui.addText(D_("No user, password or server given: can't register new account."))
69 return {'xmlui': form_ui.toXml()} 69 return {'xmlui': form_ui.toXml()}
70 70
71 user = jid.parse(session_data['JabberID'])[0] 71 user = jid.parse(session_data['JabberID'])[0]
72 session_id, dummy = self._sessions.newSession(session_data, profile) 72 session_id, dummy = self._sessions.newSession(session_data, profile)
73 form_ui = xml_tools.XMLUI("form", title=D_("Register new account"), submit_id=self.__register_account_id, session_id=session_id) 73 form_ui = xml_tools.XMLUI("form", title=D_("Register new account"), submit_id=self.__register_account_id, session_id=session_id)
74 form_ui.addText(D_("Do you want to register a new XMPP account [%(user)s] on server %(server)s ?") % {'user': user, 'server': session_data['Server']}) 74 form_ui.addText(D_("Do you want to register a new XMPP account [%(user)s] on server %(server)s ?") % {'user': user, 'server': session_data[C.FORCE_SERVER_PARAM]})
75 return {'xmlui': form_ui.toXml()} 75 return {'xmlui': form_ui.toXml()}
76 76
77 def _registerConfirmation(self, data, profile): 77 def _registerConfirmation(self, data, profile):
78 """Save the related parameters and proceed the registration.""" 78 """Save the related parameters and proceed the registration."""
79 session_data = self._sessions.profileGet(data['session_id'], profile) 79 session_data = self._sessions.profileGet(data['session_id'], profile)
80 80
81 self.host.memory.setParam("JabberID", session_data["JabberID"], "Connection", profile_key=profile) 81 self.host.memory.setParam("JabberID", session_data["JabberID"], "Connection", profile_key=profile)
82 self.host.memory.setParam("Password", session_data["Password"], "Connection", profile_key=profile) 82 self.host.memory.setParam("Password", session_data["Password"], "Connection", profile_key=profile)
83 self.host.memory.setParam("Server", session_data["Server"], "Connection", profile_key=profile) 83 self.host.memory.setParam(C.FORCE_SERVER_PARAM, session_data[C.FORCE_SERVER_PARAM], "Connection", profile_key=profile)
84 self.host.memory.setParam("Port", session_data["Port"], "Connection", profile_key=profile) 84 self.host.memory.setParam(C.FORCE_PORT_PARAM, session_data[C.FORCE_PORT_PARAM], "Connection", profile_key=profile)
85 85
86 user = jid.parse(session_data['JabberID'])[0] 86 user = jid.parse(session_data['JabberID'])[0]
87 d = self._registerNewAccount(user, session_data["Password"], None, session_data["Server"], profile_key=profile) 87 d = self._registerNewAccount(user, session_data["Password"], None, session_data[C.FORCE_SERVER_PARAM], profile_key=profile)
88 del self._sessions[data['session_id']] 88 del self._sessions[data['session_id']]
89 return d 89 return d
90 90
91 def _registerNewAccount(self, user, password, email, host, port=5222, profile_key=C.PROF_KEY_NONE): 91 def _registerNewAccount(self, user, password, email, host, port=5222, profile_key=C.PROF_KEY_NONE):
92 """Connect to a server and create a new account using in-band registration. 92 """Connect to a server and create a new account using in-band registration.