diff --git a/trytond/security.py b/trytond/security.py index 7e1717953d..3e1720d364 100644 --- a/trytond/security.py +++ b/trytond/security.py @@ -8,7 +8,7 @@ SESSION_TIMEOUT = 600 #seconds _USER_CACHE = {} -def login(dbname, loginname, password): +def login(dbname, loginname, password, cache=True): loginname = loginname.encode('utf-8') password = password.encode('utf-8') cursor = pooler.get_db(dbname).cursor() @@ -19,12 +19,15 @@ def login(dbname, loginname, password): res = cursor.fetchone() cursor.close() if res: - _USER_CACHE.setdefault(dbname, {}) user_id = res[0] - timestamp = time.time() - session = str(random.random()) - _USER_CACHE[dbname][user_id] = (timestamp, session) - return (user_id, session) + if cache: + _USER_CACHE.setdefault(dbname, {}) + timestamp = time.time() + session = str(random.random()) + _USER_CACHE[dbname][user_id] = (timestamp, session) + return (user_id, session) + else: + return user_id else: return False diff --git a/trytond/webdavsvc.py b/trytond/webdavsvc.py index 7c8b93f9b2..fed3c58e09 100644 --- a/trytond/webdavsvc.py +++ b/trytond/webdavsvc.py @@ -290,7 +290,7 @@ class WebDAVAuthRequestHandler(AuthServer.BufferedAuthRequestHandler, dbname = self.path.split('/', 2)[1] if not dbname: return 1 - USER_ID = security.login(dbname, user, password) + USER_ID = security.login(dbname, user, password, cache=False) if int(USER_ID): return 1 return 0