bemade-addons/portal_partner_manager/security/portal_security.xml
2025-05-05 10:29:07 -04:00

103 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Groupe de sécurité pour la gestion des accès portail -->
<record id="group_portal_manager" model="res.groups">
<field name="name">Gestionnaire des accès portail</field>
<field name="category_id" ref="base.module_category_hidden"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
</record>
<!-- Règles de sécurité pour les utilisateurs du portail -->
<record id="portal_partner_rule" model="ir.rule">
<field name="name">Portal User: access to parent company</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">[
'|',
('id', '=', user.partner_id.id),
'|',
('id', '=', user.partner_id.parent_id.id),
('parent_id', '=', user.partner_id.parent_id.id)
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- Règle pour permettre aux utilisateurs du portail de modifier leur société parente -->
<record id="portal_partner_write_rule" model="ir.rule">
<field name="name">Portal User: write access to parent company</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">[
('id', '=', user.partner_id.parent_id.id),
('allow_portal_parent_edit', '=', True)
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- Règle pour permettre aux utilisateurs du portail de modifier leur propre profil -->
<record id="portal_partner_self_write_rule" model="ir.rule">
<field name="name">Portal User: write access to own profile</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">[('id', '=', user.partner_id.id)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- Règle pour permettre aux utilisateurs du portail de créer des contacts pour leur société parente -->
<record id="portal_partner_create_rule" model="ir.rule">
<field name="name">Portal User: create contacts for parent company</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">[
('parent_id', '=', user.partner_id.parent_id.id),
('parent_id.allow_portal_parent_edit', '=', True)
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- Règle pour permettre aux utilisateurs du portail de modifier les contacts associés à leur société parente -->
<record id="portal_partner_contact_write_rule" model="ir.rule">
<field name="name">Portal User: write access to parent company contacts</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">[
('parent_id', '=', user.partner_id.parent_id.id),
('parent_id.allow_portal_parent_edit', '=', True)
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- Règles pour le modèle portal.access -->
<record id="portal_access_user_rule" model="ir.rule">
<field name="name">Portal Access: employees only</field>
<field name="model_id" ref="model_portal_access"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
</record>
<!-- Les règles pour l'ancien modèle portal.access.log ont été supprimées car elles ont été remplacées
par le nouveau système de journalisation basé sur portal.activity.log -->
<!-- Règles pour le modèle portal.activity.log -->
<record id="portal_activity_log_user_rule" model="ir.rule">
<field name="name">Portal Activity Log: employees only</field>
<field name="model_id" ref="model_portal_activity_log"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
</record>
</odoo>