Metatron_Student_ERP/addons/education_finance/security/education_finance_security.xml
2026-09-25 18:00:58 +05:30

97 lines
4.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Category -->
<record id="module_category_education_finance" model="ir.module.category">
<field name="name">Education Finance</field>
<field name="sequence">30</field>
</record>
<!-- Groups -->
<record id="group_finance_executive" model="res.groups">
<field name="name">Finance Executive</field>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="comment">Basic transactional actions: Record payments, view student ledgers.</field>
</record>
<record id="group_finance_manager" model="res.groups">
<field name="name">Finance Manager</field>
<field name="implied_ids" eval="[(4, ref('group_finance_executive'))]"/>
<field name="comment">Manage fee assignments, discounts, scholarships, and approve refunds.</field>
</record>
<record id="group_finance_admin" model="res.groups">
<field name="name">Finance Administrator</field>
<field name="implied_ids" eval="[(4, ref('group_finance_manager'))]"/>
<field name="comment">Full settings control, configure fee types/structures, and delete transactions.</field>
</record>
<record id="group_finance_student_readonly" model="res.groups">
<field name="name">Student Readonly Finance</field>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="comment">Access control group allowing a student to view their own ledger lines.</field>
</record>
<!-- Record Rules (Multi-Company) -->
<record id="rule_fee_category_company" model="ir.rule">
<field name="name">Fee Category Company Rule</field>
<field name="model_id" ref="model_education_fee_category"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_fee_type_company" model="ir.rule">
<field name="name">Fee Type Company Rule</field>
<field name="model_id" ref="model_education_fee_type"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_fee_structure_company" model="ir.rule">
<field name="name">Fee Structure Company Rule</field>
<field name="model_id" ref="model_education_fee_structure"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_fee_assignment_company" model="ir.rule">
<field name="name">Fee Assignment Company Rule</field>
<field name="model_id" ref="model_education_fee_assignment"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_student_ledger_company" model="ir.rule">
<field name="name">Student Ledger Company Rule</field>
<field name="model_id" ref="model_education_student_ledger"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_student_payment_company" model="ir.rule">
<field name="name">Student Payment Company Rule</field>
<field name="model_id" ref="model_education_student_payment"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_student_discount_company" model="ir.rule">
<field name="name">Student Discount Company Rule</field>
<field name="model_id" ref="model_education_student_discount"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_student_scholarship_company" model="ir.rule">
<field name="name">Student Scholarship Company Rule</field>
<field name="model_id" ref="model_education_student_scholarship"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<record id="rule_student_refund_company" model="ir.rule">
<field name="name">Student Refund Company Rule</field>
<field name="model_id" ref="model_education_student_refund"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
</record>
<!-- Student Record Rule for Readonly Group -->
<record id="rule_student_ledger_student_readonly" model="ir.rule">
<field name="name">Personal Student Ledger Rule</field>
<field name="model_id" ref="model_education_student_ledger"/>
<field name="domain_force">[('student_id.email', '=', user.login)]</field>
<field name="groups" eval="[(4, ref('group_finance_student_readonly'))]"/>
</record>
</odoo>