From bed3b4a5cb041650c637bdf3daf6032cba35b7fb Mon Sep 17 00:00:00 2001 From: Toufik Ben Jaa Date: Tue, 12 Feb 2019 15:47:02 +0000 Subject: [PATCH] [FIX] hr_*: access rights issues when changing employee's user - When changing the user of a `hr.employee` record, access rights errors could be triggered. Those errors are triggered when a record (for example a leave) is linked to this employee and the current user has limited write accesses by record rules on this record. closes odoo/odoo#31032 --- addons/hr_gamification/wizard/gamification_badge_user_wizard.py | 2 +- addons/hr_holidays/models/hr_holidays.py | 2 +- addons/hr_timesheet_sheet/models/hr_timesheet_sheet.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/hr_gamification/wizard/gamification_badge_user_wizard.py b/addons/hr_gamification/wizard/gamification_badge_user_wizard.py index 5bbb6848bd348..4c66db60db952 100644 --- a/addons/hr_gamification/wizard/gamification_badge_user_wizard.py +++ b/addons/hr_gamification/wizard/gamification_badge_user_wizard.py @@ -10,7 +10,7 @@ class GamificationBadgeUserWizard(models.TransientModel): employee_id = fields.Many2one('hr.employee', string='Employee', required=True) user_id = fields.Many2one('res.users', string='User', - related='employee_id.user_id', store=True, readonly=True) + related='employee_id.user_id', store=True, readonly=True, compute_sudo=True) # TODO 12.0/master remove this hack by changing the model @api.model diff --git a/addons/hr_holidays/models/hr_holidays.py b/addons/hr_holidays/models/hr_holidays.py index 75ac11d34064b..42179ebb3b970 100644 --- a/addons/hr_holidays/models/hr_holidays.py +++ b/addons/hr_holidays/models/hr_holidays.py @@ -174,7 +174,7 @@ def _default_employee(self): payslip_status = fields.Boolean('Reported in last payslips', help='Green this button when the leave has been taken into account in the payslip.') report_note = fields.Text('HR Comments') - user_id = fields.Many2one('res.users', string='User', related='employee_id.user_id', related_sudo=True, store=True, default=lambda self: self.env.uid, readonly=True) + user_id = fields.Many2one('res.users', string='User', related='employee_id.user_id', related_sudo=True, compute_sudo=True, store=True, default=lambda self: self.env.uid, readonly=True) date_from = fields.Datetime('Start Date', readonly=True, index=True, copy=False, states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}) date_to = fields.Datetime('End Date', readonly=True, copy=False, diff --git a/addons/hr_timesheet_sheet/models/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/models/hr_timesheet_sheet.py index d560569d669c6..c65586c76ff11 100644 --- a/addons/hr_timesheet_sheet/models/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/models/hr_timesheet_sheet.py @@ -46,7 +46,7 @@ def _default_employee(self): name = fields.Char(string="Note", states={'confirm': [('readonly', True)], 'done': [('readonly', True)]}) employee_id = fields.Many2one('hr.employee', string='Employee', default=_default_employee, required=True) - user_id = fields.Many2one('res.users', related='employee_id.user_id', string='User', store=True, readonly=True) + user_id = fields.Many2one('res.users', related='employee_id.user_id', string='User', store=True, readonly=True, compute_sudo=True) date_from = fields.Date(string='Date From', default=_default_date_from, required=True, index=True, readonly=True, states={'new': [('readonly', False)]}) date_to = fields.Date(string='Date To', default=_default_date_to, required=True,