diff --git a/trytond/protocols/dispatcher.py b/trytond/protocols/dispatcher.py index 76d8866dc0..d3ac1fa17f 100644 --- a/trytond/protocols/dispatcher.py +++ b/trytond/protocols/dispatcher.py @@ -96,16 +96,12 @@ def dispatch(host, port, protocol, database_name, user, session, object_type, obj = pool.get(object_name, type=object_type) return pydoc.getdoc(getattr(obj, method)) + user = security.check(database_name, user, session) + database = Database(database_name).connect() cursor = database.cursor() try: try: - outdate_timeout = True - if object_name == 'res.request' and method == 'request_get': - outdate_timeout = False - user = security.check(database_name, user, session, - outdate_timeout=outdate_timeout) - Cache.clean(database_name) database_list = Pool.database_list() pool = Pool(database_name) @@ -135,6 +131,8 @@ def dispatch(host, port, protocol, database_name, user, session, object_type, cursor.rollback() raise finally: + if not (object_name == 'res.request' and method == 'request_get'): + user.reset_timestamp() cursor.close() Cache.resets(database_name) return res diff --git a/trytond/security.py b/trytond/security.py index a3eb3730b6..365dee1546 100644 --- a/trytond/security.py +++ b/trytond/security.py @@ -58,7 +58,7 @@ def check_super(passwd): else: raise Exception('AccessDenied') -def check(dbname, user, session, outdate_timeout=True): +def check(dbname, user, session): if user == 0: raise Exception('AccessDenied') result = False @@ -70,8 +70,6 @@ def check(dbname, user, session, outdate_timeout=True): in enumerate(_USER_CACHE[dbname][user]): if abs(real_session.timestamp - now) < timeout: if real_session.session == session: - if outdate_timeout: - real_session.reset_timestamp() result = real_session else: to_del.insert(0, i)