From 492764c559fae553810fb24e16d43a5719cf8d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Fri, 15 Mar 2019 15:15:39 +0100 Subject: [PATCH] [FIX] hr_holidays: Don't check approval rights in onchange When this method is called in the context of an onchange `self.ids` is an empty list. This is a problem when calling `holiday.check_access_rule('write')` because it does not find any valid holidays and thus raises an AccessError. --- addons/hr_holidays/models/hr_leave.py | 3 ++- addons/hr_holidays/models/hr_leave_allocation.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 200d7937d1c..4a9bc4c03a2 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -748,7 +748,8 @@ class HolidaysRequest(models.Model): current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) is_officer = self.env.user.has_group('hr_holidays.group_hr_holidays_user') is_manager = self.env.user.has_group('hr_holidays.group_hr_holidays_manager') - + if self.env.in_onchange: + return for holiday in self: val_type = holiday.holiday_status_id.validation_type diff --git a/addons/hr_holidays/models/hr_leave_allocation.py b/addons/hr_holidays/models/hr_leave_allocation.py index a82fad4eebf..d68860a79d0 100644 --- a/addons/hr_holidays/models/hr_leave_allocation.py +++ b/addons/hr_holidays/models/hr_leave_allocation.py @@ -486,7 +486,7 @@ class HolidaysAllocation(models.Model): def _check_approval_update(self, state): """ Check if target state is achievable. """ current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) - if not current_employee: + if not current_employee or self.env.in_onchange: return is_officer = self.env.user.has_group('hr_holidays.group_hr_holidays_user') is_manager = self.env.user.has_group('hr_holidays.group_hr_holidays_manager')