[IMP] use authenticate() method to log the user in

bzr revid: chs@openerp.com-20111013143339-dtasfi7kvvn7wusq
This commit is contained in:
Christophe Simonis 2011-10-13 16:33:39 +02:00
parent f3573d844e
commit 5ea774f883
5 changed files with 16 additions and 11 deletions

View File

@ -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")

View File

@ -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()

View File

@ -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 {

View File

@ -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) {

View File

@ -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;