From 9b5949e2c5c1185ff0ddab007f591726350187e5 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Tue, 20 Dec 2011 16:05:56 +0100 Subject: [PATCH] [ADD] specific url for direct login bzr revid: chs@openerp.com-20111220150556-ffcaeae94w195gmt --- addons/web/controllers/main.py | 9 +++++++++ addons/web/static/src/js/chrome.js | 13 +++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index ba3e78a4ee5..6a7ab94a645 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -17,6 +17,7 @@ from xml.etree import ElementTree from cStringIO import StringIO import babel.messages.pofile +import werkzeug.utils import web.common openerpweb = web.common.http @@ -200,6 +201,14 @@ class WebClient(openerpweb.Controller): } return r + @openerpweb.httprequest + def login(self, req, db, login, key): + req.session.authenticate(db, login, key, {}) + redirect = werkzeug.utils.redirect('/web/webclient/home', 303) + cookie_val = urllib2.quote(simplejson.dumps(req.session_id)) + redirect.set_cookie('session0|session_id', cookie_val) + return redirect + @openerpweb.jsonrequest def translations(self, req, mods, lang): lang_model = req.session.model('res.lang') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 11fb36018c0..424b1e75a6a 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -532,15 +532,6 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ this.selected_password = localStorage.getItem('last_password_login_success'); } } - - var qs = jQuery.deparam(jQuery.param.querystring()); - if (qs.db) { - this.selected_db = qs.db; - } - if (qs.login) { - this.selected_login = qs.login; - } - }, start: function() { var self = this; @@ -580,7 +571,9 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ this.$element.closest(".openerp").removeClass("login-mode"); }, on_submit: function(ev) { - ev.preventDefault(); + if(ev) { + ev.preventDefault(); + } var $e = this.$element; var db = $e.find("form [name=db]").val(); var login = $e.find("form input[name=login]").val();