summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2013-02-26 17:19:25 +0100
committerFabien Meghazi <fme@openerp.com>2013-02-26 17:19:25 +0100
commit977eaed2c852bbe9aa6c60cc8a36861f4967ae7d (patch)
treeb459b12cbe2f6e935ba9157536e68d9cd1126f5e /addons
parented5012ffb6ef0888893e4623da8ee45230f4a4b9 (diff)
[FIX] make a json request out of reset_password
bzr revid: fme@openerp.com-20130226161925-v8sr2r1zgcki6n3z
Diffstat (limited to 'addons')
-rw-r--r--addons/auth_signup/controllers/main.py11
-rw-r--r--addons/auth_signup/static/src/js/auth_signup.js20
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);
+ });
},
});
};