diff --git a/addons/hr/models/res_users.py b/addons/hr/models/res_users.py index 036e4af6345..6853f059748 100644 --- a/addons/hr/models/res_users.py +++ b/addons/hr/models/res_users.py @@ -73,8 +73,13 @@ HR_WRITABLE_FIELDS = [ class User(models.Model): _inherit = ['res.users'] + def _employee_ids_domain(self): + # employee_ids is considered a safe field and as such will be fetched as sudo. + # So try to enforce the security rules on the field to make sure we do not load employees outside of active companies + return [('company_id', 'in', self.env.company.ids + self.env.context.get('allowed_company_ids', []))] + # note: a user can only be linked to one employee per company (see sql constraint in ´hr.employee´) - employee_ids = fields.One2many('hr.employee', 'user_id', string='Related employee') + employee_ids = fields.One2many('hr.employee', 'user_id', string='Related employee', domain=_employee_ids_domain) employee_id = fields.Many2one('hr.employee', string="Company employee", compute='_compute_company_employee', search='_search_company_employee', store=False)