From a456161680f644be44f5f4e5d8c9b9415c645df4 Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Fri, 17 Aug 2018 15:48:09 +0200 Subject: [PATCH] [FIX] sales_team: AccessError on default team - Create 2 companies C1 and C2 - Assign User U1 in C1 - Assign the default Sales Team (`sales_team.team_sales_department`) to C2 - Create an invoice with U1 An `AccessError` is raised because the user is not allowed to access the default Sales Team. We fall back on `sales_team.team_sales_department` only if the user has read access. opw-1876966 --- addons/sales_team/models/crm_team.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/sales_team/models/crm_team.py b/addons/sales_team/models/crm_team.py index f3708fc5b10..ecfcecfd587 100644 --- a/addons/sales_team/models/crm_team.py +++ b/addons/sales_team/models/crm_team.py @@ -8,7 +8,7 @@ from dateutil.relativedelta import relativedelta import json from odoo import api, fields, models, _ -from odoo.exceptions import UserError +from odoo.exceptions import AccessError, UserError from odoo.release import version from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DF @@ -33,8 +33,13 @@ class CrmTeam(models.Model): team_id = self.env['crm.team'].browse(self.env.context.get('default_team_id')) if not team_id: default_team_id = self.env.ref('sales_team.team_sales_department', raise_if_not_found=False) - if default_team_id and (self.env.context.get('default_type') != 'lead' or default_team_id.use_leads): - team_id = default_team_id + if default_team_id: + try: + default_team_id.check_access_rule('read') + except AccessError: + return False + if self.env.context.get('default_type') != 'lead' or default_team_id.use_leads: + team_id = default_team_id return team_id def _get_default_favorite_user_ids(self):