diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py index 9e7e65cec9d..9308aaf71f7 100644 --- a/odoo/addons/base/models/res_users.py +++ b/odoo/addons/base/models/res_users.py @@ -280,8 +280,10 @@ class Users(models.Model): _order = 'name, login' _allow_sudo_commands = False - def _check_company_domain(self, companies=None): - return [('company_ids', 'in', models.to_company_ids(companies))] if companies else [] + def _check_company_domain(self, companies): + if not companies: + return [] + return [('company_ids', 'in', models.to_company_ids(companies))] @property def SELF_READABLE_FIELDS(self): diff --git a/odoo/fields.py b/odoo/fields.py index 4baede645ad..04083a0cfe4 100644 --- a/odoo/fields.py +++ b/odoo/fields.py @@ -2925,7 +2925,8 @@ class _Relational(Field): else: cid = "id" if self.model_name == "res.company" else "company_id" company_domain = env[self.comodel_name]._check_company_domain(companies=unquote(cid)) - return f"({cid} and {company_domain} or []) + ({domain or []})" + no_company_domain = env[self.comodel_name]._check_company_domain(companies='') + return f"({cid} and {company_domain} or {no_company_domain}) + ({domain or []})" return domain diff --git a/odoo/models.py b/odoo/models.py index 79eb7f9d35a..1a77dd270e2 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -4000,6 +4000,8 @@ class BaseModel(metaclass=MetaModel): :param companies: the allowed companies for the related record :type companies: BaseModel or list or tuple or int or unquote """ + if not companies: + return [('company_id', '=', False)] return ['|', ('company_id', '=', False), ('company_id', 'in', to_company_ids(companies))] def _check_company(self, fnames=None):