hr_multi_company_employee/security/hr_security.xml

35 lines
1.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record id="hr.hr_employee_comp_rule" model="ir.rule">
<field name="name">Employee multi branch rule</field>
<field name="model_id" ref="hr.model_hr_employee"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_ids', 'in', company_ids), '&amp;', ('company_ids', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
<record id="hr.hr_employee_public_comp_rule" model="ir.rule">
<field name="name">Employee public multi branch rule</field>
<field name="model_id" ref="hr.model_hr_employee_public"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', '|', '|', '|', ('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)]</field>
</record>
<record id="base.res_partner_rule" model="ir.rule">
<!-- Override: allow access if company_id is in ANY of the user's allowed companies
(user.company_ids), not only the currently active session companies (company_ids).
This fixes the "read access to res.partner" error when viewing employees whose
partner belongs to a non-active but permitted company. -->
<field name="domain_force">['|', '|', '|', ('partner_share', '=', False), ('company_id', 'parent_of', company_ids), ('company_id', 'in', user.company_ids.ids), ('company_id', '=', False)]</field>
</record>
<record id="base.res_company_rule_employee" model="ir.rule">
<field name="domain_force">[(1, '=', 1)]</field>
</record>
<record id="product.product_comp_rule" model="ir.rule">
<field name="domain_force">[(1, '=', 1)]</field>
</record>
</data>
</odoo>