From 5ea774f883f1ac71ca98906a5ec5811b7e55e132 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 16:33:39 +0200 Subject: [PATCH] [IMP] use authenticate() method to log the user in bzr revid: chs@openerp.com-20111013143339-dtasfi7kvvn7wusq --- addons/web/common/openerplib/main.py | 3 ++- addons/web/common/session.py | 5 +++-- addons/web/controllers/main.py | 10 ++++++---- addons/web/static/src/js/chrome.js | 2 +- addons/web/static/src/js/core.js | 7 ++++--- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/addons/web/common/openerplib/main.py b/addons/web/common/openerplib/main.py index 217cb221cd9..052c8243271 100644 --- a/addons/web/common/openerplib/main.py +++ b/addons/web/common/openerplib/main.py @@ -351,7 +351,8 @@ class Connection(object): if not self.database or not self.login or self.password is None: raise AuthenticationError("Creditentials not provided") - + + # TODO use authenticate instead of login self.user_id = self.get_service("common").login(self.database, self.login, self.password) if not self.user_id: raise AuthenticationError("Authentication failure") diff --git a/addons/web/common/session.py b/addons/web/common/session.py index ef38fc6a154..3b1dc9d3ca9 100644 --- a/addons/web/common/session.py +++ b/addons/web/common/session.py @@ -58,8 +58,9 @@ class OpenERPSession(object): self._login = login self._password = password - def login(self, db, login, password, env): - uid = self.proxy('common').login_env(db, login, password, 'web', env) + def authenticate(self, db, login, password, env): + # TODO use the lib once it use authenticate + uid = self.proxy('common').authenticate(db, login, password, env) self.bind(db, uid, login, password) if uid: self.get_context() diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 2432edc71ea..c4cde50e06f 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -265,14 +265,16 @@ class Session(openerpweb.Controller): _cp_path = "/web/session" @openerpweb.jsonrequest - def login(self, req, db, login, password): + def authenticate(self, req, db, login, password, base_location=None): wsgienv = req.httprequest.environ + release = web.common.release env = dict( - host='%s://%s' % (wsgienv['wsgi.url_scheme'], wsgienv['HTTP_HOST']), - referrer=wsgienv.get('HTTP_REFERER'), + base_location=base_location, + HTTP_HOST=wsgienv['HTTP_HOST'], REMOTE_ADDR=wsgienv['REMOTE_ADDR'], + user_agent="%s / %s" % (release.name, release.version), ) - req.session.login(db, login, password, env) + req.session.authenticate(db, login, password, env) ctx = req.session.get_context() if req.session._uid else {} return { diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1742bd91c95..8a0c1a93ecc 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -543,7 +543,7 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ */ do_login: function (db, login, password) { var self = this; - this.session.session_login(db, login, password, function() { + this.session.session_authenticate(db, login, password, function() { if(self.session.session_is_valid()) { if (self.has_local_storage) { if(self.remember_creditentials) { diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index da9c21bf551..0279102feeb 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -477,10 +477,11 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web session_is_valid: function() { return this.uid; }, - session_login: function(db, login, password, success_callback) { + session_authenticate: function(db, login, password, success_callback) { var self = this; - var params = { db: db, login: login, password: password }; - return this.rpc("/web/session/login", params, function(result) { + var base_location = document.location.protocol + '//' + document.location.host; + var params = { db: db, login: login, password: password, base_location: base_location }; + return this.rpc("/web/session/authenticate", params, function(result) { self.session_id = result.session_id; self.uid = result.uid; self.user_context = result.context;