From 3919a3581fae44ec1f231ca8d3ab99122e1d9807 Mon Sep 17 00:00:00 2001 From: bve-odoo <bve@odoo.com> Date: Wed, 8 Feb 2023 17:30:42 +0100 Subject: [PATCH] [FIX] core: force disabling of database when request ends MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes odoo/odoo#95123 Signed-off-by: Rémy Voet <ryv@odoo.com> --- addons/web/controllers/main.py | 2 -- odoo/http.py | 9 +++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index ad165e8e9034..972f1589e427 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -1053,7 +1053,6 @@ class WebClient(http.Controller): :param lang: the language of the user :return: """ - request.disable_db = False if mods: mods = mods.split(',') @@ -1229,7 +1228,6 @@ class Session(http.Controller): def get_session_info(self): request.session.check_security() request.uid = request.session.uid - request.disable_db = False return request.env['ir.http'].session_info() @http.route('/web/session/authenticate', type='json', auth="none") diff --git a/odoo/http.py b/odoo/http.py index 27614315bc10..47a673e8f157 100644 --- a/odoo/http.py +++ b/odoo/http.py @@ -198,10 +198,10 @@ class WebRequest(object): def __init__(self, httprequest): self.httprequest = httprequest self.httpresponse = None - self.disable_db = False self.endpoint = None self.endpoint_arguments = None self.auth_method = None + self._db = self.session.db self._cr = None self._uid = None self._context = None @@ -285,7 +285,7 @@ class WebRequest(object): finally: self._cr.close() # just to be sure no one tries to re-use the request - self.disable_db = True + self._db = None self.uid = None def set_handler(self, endpoint, arguments, auth): @@ -393,7 +393,9 @@ class WebRequest(object): The database linked to this request. Can be ``None`` if the current request uses the ``none`` authentication. """ - return self.session.db if not self.disable_db else None + if not self._db: + self._db = self.session.db + return self._db def csrf_token(self, time_limit=None): """ Generates and returns a CSRF token for the current session @@ -1033,7 +1035,6 @@ class OpenERPSession(sessions.Session): self.rotate = True self.db = db self.login = login - request.disable_db = False user = request.env(user=uid)['res.users'].browse(uid) if not user._mfa_url(): -- GitLab