diff --git a/models/__pycache__/hr_employee.cpython-312.pyc b/models/__pycache__/hr_employee.cpython-312.pyc index e63e21c..444dcbe 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 2bcc722..bd98ce5 100644 --- a/models/hr_employee.py +++ b/models/hr_employee.py @@ -76,6 +76,12 @@ class HrEmployee(models.Model): if rule.domain_force != new_domain: rule.sudo().write({'domain_force': new_domain}) + rule_public = self.env.ref('hr.hr_employee_public_comp_rule', raise_if_not_found=False) + if rule_public: + new_domain_public = "['|', '|', '|', '|', ('company_ids', 'in', company_ids), ('company_id', 'in', company_ids + [False]), ('parent_id.user_id', '=', user.id), ('id', '=', user.employee_id.parent_id.id), ('user_id', '=', user.id)]" + if rule_public.domain_force != new_domain_public: + rule_public.sudo().write({'domain_force': new_domain_public}) + class HrEmployeePublic(models.Model): diff --git a/security/hr_security.xml b/security/hr_security.xml index d48f2d0..2892211 100644 --- a/security/hr_security.xml +++ b/security/hr_security.xml @@ -8,6 +8,13 @@ ['|', ('company_ids', 'in', company_ids), '&', ('company_ids', '=', False), ('company_id', 'in', company_ids)] + + Employee public multi branch rule + + + ['|', '|', '|', '|', ('company_ids', 'in', company_ids), ('company_id', 'in', company_ids + [False]), ('parent_id.user_id', '=', user.id), ('id', '=', user.employee_id.parent_id.id), ('user_id', '=', user.id)] + + ['|', '|', '|', ('partner_share', '=', False), ('company_id', 'parent_of', company_ids), ('company_id', '=', False), ('employee_ids.company_ids', 'in', company_ids)]