mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-20 23:32:03 +02:00
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import time
|
|
|
|
from odoo.tools.misc import consteq
|
|
|
|
|
|
def compute_session_token(session, env):
|
|
self = env['res.users'].browse(session.uid)
|
|
return self._compute_session_token(session.sid)
|
|
|
|
|
|
def check_session(session, env, request=None):
|
|
session._delete_old_sessions()
|
|
# Make sure we don't use a deleted session that can be saved again
|
|
if 'deletion_time' in session and session['deletion_time'] <= time.time():
|
|
return False
|
|
self = env['res.users'].browse(session.uid)
|
|
expected = self._compute_session_token(session.sid)
|
|
if expected:
|
|
if consteq(expected, session.session_token):
|
|
if request:
|
|
env['res.device.log']._update_device(request)
|
|
return True
|
|
# If the session token is not valid, we check if the legacy version works
|
|
# and convert the session token to the new one
|
|
legacy_expected = self._legacy_session_token_hash_compute(session.sid)
|
|
if legacy_expected and consteq(legacy_expected, session.session_token):
|
|
session.session_token = expected
|
|
if request:
|
|
env['res.device.log']._update_device(request)
|
|
return True
|
|
return False
|