From 1963e8c7b487d13305e3b497180556a626fb0eee Mon Sep 17 00:00:00 2001 From: Alessio Renda Date: Thu, 14 Mar 2024 15:59:00 +0100 Subject: [PATCH] [FIX] website_require_login: hidden exception --- website_require_login/models/ir_http.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/website_require_login/models/ir_http.py b/website_require_login/models/ir_http.py index 72ee73b57f..99ec8baa2d 100644 --- a/website_require_login/models/ir_http.py +++ b/website_require_login/models/ir_http.py @@ -2,6 +2,8 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0). from pathlib import Path +from psycopg2 import OperationalError + from odoo import models from odoo.http import request @@ -12,13 +14,19 @@ class IrHttp(models.AbstractModel): @classmethod def _dispatch(cls): res = super(IrHttp, cls)._dispatch() - # if not website request - skip - website = request.env["website"].sudo().get_current_website() if not website: return res - if request.uid == website.user_id.id: + + # if it can't access the user_id, + # it means that an exception has been + # raised and the cursor is currently closed + try: + user = website.user_id + except OperationalError: + return res + if request.uid == user.id: auth_paths = ( request.env["website.auth.url"] .sudo()