From 8c778b887d557053bb9178b40209ac34ac22cede Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 5 Sep 2011 12:11:43 +0200 Subject: [PATCH] [fix] lot of bug correction related to auto-login bzr revid: nicolas.vanhoren@openerp.com-20110905101143-lcm2g0biekydhj2n --- addons/web/static/src/js/chrome.js | 8 ++++---- addons/web/static/src/js/core.js | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index d82bb78ae1d..aa1f603232c 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -518,7 +518,7 @@ openerp.web.Login = openerp.web.Widget.extend({ this.on_login_valid.add({ position: "last", unique: true, - callback: continuation + callback: continuation || function() {} }); }, on_logout: function() { @@ -539,13 +539,13 @@ openerp.web.Header = openerp.web.Widget.extend({ }, do_update: function () { var self = this; - return new openerp.base.Model(self.session, "res.users") - .get_func("read")(self.session.uid, ["name", "company_id"]).pipe(function(res) { + var func = new openerp.base.Model(self.session, "res.users").get_func("read"); + func(self.session.uid, ["name", "company_id"]).then(function(res) { self.$content = $(QWeb.render("Header-content", {widget: self, user: res})); self.$content.appendTo(self.$element); self.$element.find(".logout").click(self.on_logout); self.$element.find("a.preferences").click(self.on_preferences); - return self.shortcut_load(); + self.shortcut_load(); }); }, do_reset: function() { diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 61da12f8974..719b027908e 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -470,9 +470,8 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web self.user_context = result.context; self.session_save(); self.on_session_valid(); - if (success_callback) - success_callback(); - }); + return true; + }).then(success_callback); }, session_logout: function() { this.uid = false; @@ -488,7 +487,10 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web this.user_context = this.get_cookie("user_context"); // we should do an rpc to confirm that this session_id is valid and if it is retrieve the information about db and login // then call on_session_valid - this.on_session_valid(); + if (this.uid) + this.on_session_valid(); + else + this.on_session_invalid(); }, /** * Saves the session id and uid locally