diff --git a/__pycache__/__manifest__.cpython-312.pyc b/__pycache__/__manifest__.cpython-312.pyc new file mode 100644 index 0000000..495a637 Binary files /dev/null and b/__pycache__/__manifest__.cpython-312.pyc differ diff --git a/models/__pycache__/hr_employee.cpython-312.pyc b/models/__pycache__/hr_employee.cpython-312.pyc index 6b3bdc3..e63e21c 100644 Binary files a/models/__pycache__/hr_employee.cpython-312.pyc and b/models/__pycache__/hr_employee.cpython-312.pyc differ diff --git a/models/hr_employee.py b/models/hr_employee.py index 6fd8b4a..2bcc722 100644 --- a/models/hr_employee.py +++ b/models/hr_employee.py @@ -67,6 +67,16 @@ class HrEmployee(models.Model): domain = replace_company_leaf(domain) return super()._search(domain, offset=offset, limit=limit, order=order, **kwargs) + @api.model + def _register_hook(self): + super()._register_hook() + rule = self.env.ref('base.res_partner_rule', raise_if_not_found=False) + if rule: + new_domain = "['|', '|', '|', ('partner_share', '=', False), ('company_id', 'parent_of', company_ids), ('company_id', '=', False), ('employee_ids.company_ids', 'in', company_ids)]" + if rule.domain_force != new_domain: + rule.sudo().write({'domain_force': new_domain}) + + class HrEmployeePublic(models.Model): _inherit = 'hr.employee.public' diff --git a/security/hr_security.xml b/security/hr_security.xml index 886a635..d48f2d0 100644 --- a/security/hr_security.xml +++ b/security/hr_security.xml @@ -7,5 +7,9 @@ ['|', ('company_ids', 'in', company_ids), '&', ('company_ids', '=', False), ('company_id', 'in', company_ids)] + + + ['|', '|', '|', ('partner_share', '=', False), ('company_id', 'parent_of', company_ids), ('company_id', '=', False), ('employee_ids.company_ids', 'in', company_ids)] +