From 04bd54d0bc95a82e805230850a826e9e80e911f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Tue, 7 Jan 2020 10:45:08 +0000 Subject: [PATCH] [FIX] base: Allow to get default with auth=none Since dae065d, model defaults are retrieved based on the env company instead of the user's company. However, for a request with auth='none', the company might not be set on the environnement (if `allowed_company_ids` is not in the context). This makes the sql query crash, trying to compare an integer to `false`. closes odoo/odoo#42951 X-original-commit: fa47b1b23a7fa09166c16aacf025cdcefcfaa9fd Signed-off-by: lul-odoo --- odoo/addons/base/models/ir_default.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/models/ir_default.py b/odoo/addons/base/models/ir_default.py index 3c0b3140220..046c4bfe552 100644 --- a/odoo/addons/base/models/ir_default.py +++ b/odoo/addons/base/models/ir_default.py @@ -135,7 +135,8 @@ class IrDefault(models.Model): AND {} ORDER BY d.user_id, d.company_id, d.id """ - params = [model_name, self.env.uid, self.env.company.id] + # self.env.company is empty when there is no user (controllers with auth=None) + params = [model_name, self.env.uid, self.env.company.id or None] if condition: query = query.format("d.condition=%s") params.append(condition)