[FIX] hr_holidays: Access error when requesting a new leave

Steps to reproduce the bug:
- Create an hr.leave.allocation with mode = 'By Employee Tag'
- Select Employee Tag = 'Employee'
- Set all the other required values
- Log with Demo User(Marc Demo)
- Go to Leaves > My Leaves > New Request

Bug:

An access right error was raised due to the record rule: "Allocations: employee: read own"
With this record rule the user can only read the hr.leave.allocation linked to his employee's user.
But with allocations in mode 'By Employee Tag', in the function get_days it tried to compute
the 'number_of_hours_display' of all the allocations linked to the current employee's user and
in the function _compute_number_of_hours_display, it also computes the parent_id of these allocations.
As the parent_id is not linked to the employee's user, it raised an access right error.

opw:2006686

closes odoo/odoo#34236

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
This commit is contained in:
Goffin Simon
2019-06-19 09:14:47 +00:00
parent 97cd3dfdf9
commit cfd5c90652
+1 -1
View File
@@ -173,7 +173,7 @@ class HolidaysType(models.Model):
if request.leave_type_request_unit == 'hour'
else request.number_of_days)
for allocation in allocations:
for allocation in allocations.sudo():
status_dict = result[allocation.holiday_status_id.id]
if allocation.state == 'validate':
# note: add only validated allocation even for the virtual