Files
Odoo-Modules/fusion-plating/fusion_plating/security/fp_security.xml
gsinghpal be611876ad changes
2026-04-12 09:09:50 -04:00

86 lines
4.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<!-- ================================================================== -->
<!-- MODULE CATEGORY -->
<!-- Odoo 19 organises privileges by ir.module.category. Without this, -->
<!-- groups fall into the generic Extra Rights list in user settings. -->
<!-- ================================================================== -->
<record id="module_category_fusion_plating" model="ir.module.category">
<field name="name">Fusion Plating</field>
<field name="sequence">46</field>
</record>
<!-- ================================================================== -->
<!-- PRIVILEGE (Odoo 19 res.groups.privilege) -->
<!-- Groups must reference this privilege_id so they render under a -->
<!-- "FUSION PLATING" section in user settings. -->
<!-- ================================================================== -->
<record id="res_groups_privilege_fusion_plating" model="res.groups.privilege">
<field name="name">Fusion Plating</field>
<field name="sequence">46</field>
<field name="category_id" ref="module_category_fusion_plating"/>
</record>
<!-- ================================================================== -->
<!-- OPERATOR (base shop-floor access) -->
<!-- Reads most reference data, writes chemistry logs. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_operator" model="res.groups">
<field name="name">Operator</field>
<field name="sequence">10</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<!-- ================================================================== -->
<!-- SUPERVISOR (line supervisor, team lead) -->
<!-- Can manage baths, schedule jobs, review logs. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_supervisor" model="res.groups">
<field name="name">Supervisor</field>
<field name="sequence">20</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('group_fusion_plating_operator'))]"/>
</record>
<!-- ================================================================== -->
<!-- MANAGER (quality, EHS, plant manager, engineer) -->
<!-- Full CRUD on configuration objects. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_manager" model="res.groups">
<field name="name">Manager</field>
<field name="sequence">30</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('group_fusion_plating_supervisor'))]"/>
</record>
<!-- ================================================================== -->
<!-- ADMINISTRATOR (owner, super-admin) -->
<!-- Everything a Manager can do, plus system-level settings. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_admin" model="res.groups">
<field name="name">Administrator</field>
<field name="sequence">40</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('group_fusion_plating_manager'))]"/>
<field name="user_ids" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<!-- ================================================================== -->
<!-- RECORD RULE — Multi-company isolation on facilities -->
<!-- ================================================================== -->
<record id="fp_facility_company_rule" model="ir.rule">
<field name="name">Fusion Plating: Facility — multi-company</field>
<field name="model_id" ref="model_fusion_plating_facility"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
</odoo>