From 977eaed2c852bbe9aa6c60cc8a36861f4967ae7d Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 26 Feb 2013 17:19:25 +0100 Subject: [PATCH] [FIX] make a json request out of reset_password bzr revid: fme@openerp.com-20130226161925-v8sr2r1zgcki6n3z --- addons/auth_signup/controllers/main.py | 11 +++------- .../auth_signup/static/src/js/auth_signup.js | 20 ++++++++++--------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py index baf1a8f0b28..73e2f0e3fa0 100644 --- a/addons/auth_signup/controllers/main.py +++ b/addons/auth_signup/controllers/main.py @@ -19,9 +19,6 @@ # ############################################################################## import logging -import urllib - -import werkzeug import openerp from openerp.modules.registry import RegistryManager @@ -69,7 +66,7 @@ class Controller(openerp.addons.web.http.Controller): res_users = registry.get('res.users') res_users.signup(cr, openerp.SUPERUSER_ID, values, token) - @openerp.addons.web.http.httprequest + @openerp.addons.web.http.jsonrequest def reset_password(self, req, dbname, login): """ retrieve user, and perform reset password """ registry = RegistryManager.get(dbname) @@ -78,12 +75,10 @@ class Controller(openerp.addons.web.http.Controller): res_users = registry.get('res.users') res_users.reset_password(cr, openerp.SUPERUSER_ID, login) cr.commit() - message = 'An email has been sent with credentials to reset your password' except Exception as e: # signup error _logger.exception('error when resetting password') - message = e.message - params = [('action', 'login'), ('error_message', message)] - return werkzeug.utils.redirect("/#" + urllib.urlencode(params)) + raise(e) + return True # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_signup/static/src/js/auth_signup.js b/addons/auth_signup/static/src/js/auth_signup.js index d292febcc87..4303ea5b6cf 100644 --- a/addons/auth_signup/static/src/js/auth_signup.js +++ b/addons/auth_signup/static/src/js/auth_signup.js @@ -74,7 +74,7 @@ openerp.auth_signup = function(instance) { this.on_db_loaded([result.db]); if (result.token) { // switch to signup mode, set user name and login - this.set({ 'login-mode': 'signup' }); + this.set({ 'login-mode': this.params.type === 'reset' ? 'reset' : 'signup' }); this.$("form input[name=name]").val(result.name).attr("readonly", "readonly"); if (result.login) { this.$("form input[name=login]").val(result.login).attr("readonly", "readonly"); @@ -155,21 +155,23 @@ openerp.auth_signup = function(instance) { if (ev) { ev.preventDefault(); } + var self = this; var db = this.$("form [name=db]").val(); var login = this.$("form input[name=login]").val(); if (!db) { this.do_warn(_t("Login"), _t("No database selected !")); - return false; + return $.Deferred.reject(); } else if (!login) { this.do_warn(_t("Login"), _t("Please enter a username or email address.")); - return false; + return $.Deferred.reject(); } - var params = { - dbname : db, - login: login, - }; - var url = "/auth_signup/reset_password?" + $.param(params); - window.location = url; + return self.rpc("/auth_signup/reset_password", { dbname: db, login: login }).done(function(result) { + self.show_error(_t("An email has been sent with credentials to reset your password")); + self.set({ 'login-mode': 'default' }); + }).fail(function(result, ev) { + ev.preventDefault(); + self.show_error(result.message); + }); }, }); };