Reset session timeout at the end of the call
This commit is contained in:
1 parent
0de3f616df
commit
25febb7cbb
2 files changed
+5
-9
No files matched your search
@@ -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
|
||||
|
||||
+1
-3
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user