From 6116d9ae0e8b3a924aaf01f4e98d6f8dadc57487 Mon Sep 17 00:00:00 2001 From: "vta vta@openerp.com" <> Date: Tue, 18 Dec 2012 16:32:55 +0100 Subject: [PATCH] [FIX] fixed anonymous autologin, and autojump to oauth provider directly bzr revid: vta@openerp.com-20121218153255-14mwitd6q06bbyor --- addons/auth_oauth/static/src/js/auth_oauth.js | 11 ++++++++--- addons/auth_signup/res_users.py | 3 +-- .../static/src/js/portal_anonymous.js | 16 ++++++++++------ 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/addons/auth_oauth/static/src/js/auth_oauth.js b/addons/auth_oauth/static/src/js/auth_oauth.js index c24dab3d55a..7ee83bd99e9 100644 --- a/addons/auth_oauth/static/src/js/auth_oauth.js +++ b/addons/auth_oauth/static/src/js/auth_oauth.js @@ -28,9 +28,14 @@ openerp.auth_oauth = function(instance) { }, on_oauth_loaded: function(result) { this.oauth_providers = result; - this.$('.oe_oauth_provider_login_button').remove(); - var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this}); - this.$(".oe_login_pane form ul").after(buttons); + var params = $.deparam($.param.querystring()); + if (this.oauth_providers.length === 1 && params.type === 'signup') { + this.do_oauth_sign_in(this.oauth_providers[0]); + } else { + this.$('.oe_oauth_provider_login_button').remove(); + var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this}); + this.$(".oe_login_pane form ul").after(buttons); + } }, on_oauth_sign_in: function(ev) { ev.preventDefault(); diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py index 531475db8e6..f50db72d398 100644 --- a/addons/auth_signup/res_users.py +++ b/addons/auth_signup/res_users.py @@ -64,10 +64,9 @@ class res_partner(osv.Model): # the parameters to encode for the query and fragment part of url query = {'db': cr.dbname} - fragment = {'action': action} + fragment = {'action': action, 'type': partner.signup_type} if partner.signup_token: - fragment['type'] = partner.signup_type fragment['token'] = partner.signup_token elif partner.user_ids: fragment['db'] = cr.dbname diff --git a/addons/portal_anonymous/static/src/js/portal_anonymous.js b/addons/portal_anonymous/static/src/js/portal_anonymous.js index 1045ff0889d..adaa51948b5 100644 --- a/addons/portal_anonymous/static/src/js/portal_anonymous.js +++ b/addons/portal_anonymous/static/src/js/portal_anonymous.js @@ -4,17 +4,13 @@ openerp.portal_anonymous = function(instance) { start: function() { var self = this; return $.when(this._super()).then(function() { - var dblist = self.db_list || []; var params = $.deparam($.param.querystring()); - if (!!params.token || !!params.login) { - return false; - } - if (!self.session.session_is_valid() && dblist.length === 1) { + var dblist = self.db_list || []; + if (!self.session.session_is_valid() && dblist.length === 1 && (!params.token || !params.login)) { self.remember_credentials = false; // XXX get login/pass from server (via a rpc call) ? return self.do_login(dblist[0], 'anonymous', 'anonymous'); } - }); }, }); @@ -55,6 +51,14 @@ openerp.portal_anonymous = function(instance) { } return false; }, + // Avoid browser preloading + show_application: function() { + var params = $.deparam($.param.querystring()); + if (!!params.token || !!params.login) { + return this.show_login(); + } + return this._super(); + }, }); };