survey_custom_certificate_t.../security/survey_custom_certificate_security.xml
2025-11-29 08:46:04 +07:00

80 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Record Rules for survey.survey model -->
<!-- Survey managers can access all surveys -->
<record id="survey_custom_certificate_manager_rule" model="ir.rule">
<field name="name">Survey Custom Certificate: Manager Access</field>
<field name="model_id" ref="survey.model_survey_survey"/>
<field name="groups" eval="[(4, ref('survey.group_survey_manager'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
<!-- Survey users can only read surveys they have access to -->
<record id="survey_custom_certificate_user_rule" model="ir.rule">
<field name="name">Survey Custom Certificate: User Read Access</field>
<field name="model_id" ref="survey.model_survey_survey"/>
<field name="groups" eval="[(4, ref('survey.group_survey_user'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
<field name="domain_force">['|', ('create_uid', '=', user.id), ('user_id', '=', user.id)]</field>
</record>
<!-- Record Rules for wizard models -->
<!-- Only survey managers can create/modify wizards -->
<record id="wizard_manager_rule" model="ir.rule">
<field name="name">Certificate Wizard: Manager Access</field>
<field name="model_id" ref="model_survey_custom_certificate_wizard"/>
<field name="groups" eval="[(4, ref('survey.group_survey_manager'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
<!-- Survey users can only read their own wizard instances -->
<record id="wizard_user_rule" model="ir.rule">
<field name="name">Certificate Wizard: User Read Access</field>
<field name="model_id" ref="model_survey_custom_certificate_wizard"/>
<field name="groups" eval="[(4, ref('survey.group_survey_user'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
<field name="domain_force">[('create_uid', '=', user.id)]</field>
</record>
<!-- Placeholder record rules -->
<record id="placeholder_manager_rule" model="ir.rule">
<field name="name">Certificate Placeholder: Manager Access</field>
<field name="model_id" ref="model_survey_certificate_placeholder"/>
<field name="groups" eval="[(4, ref('survey.group_survey_manager'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
<record id="placeholder_user_rule" model="ir.rule">
<field name="name">Certificate Placeholder: User Read Access</field>
<field name="model_id" ref="model_survey_certificate_placeholder"/>
<field name="groups" eval="[(4, ref('survey.group_survey_user'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
<field name="domain_force">[('wizard_id.create_uid', '=', user.id)]</field>
</record>
</data>
</odoo>