Initial commit
This commit is contained in:
129
fusion_clock/security/security.xml
Normal file
129
fusion_clock/security/security.xml
Normal file
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Groups -->
|
||||
<record id="group_fusion_clock_user" model="res.groups">
|
||||
<field name="name">Fusion Clock / User</field>
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||
<field name="comment">Can clock in/out and view own attendance</field>
|
||||
</record>
|
||||
|
||||
<record id="group_fusion_clock_manager" model="res.groups">
|
||||
<field name="name">Fusion Clock / Manager</field>
|
||||
<field name="implied_ids" eval="[(4, ref('group_fusion_clock_user'))]"/>
|
||||
<field name="comment">Can manage locations, view all attendance, generate reports</field>
|
||||
</record>
|
||||
|
||||
<!-- Auto-assign admin to Manager group -->
|
||||
<record id="base.user_admin" model="res.users">
|
||||
<field name="groups_id" eval="[(4, ref('group_fusion_clock_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Record Rules -->
|
||||
|
||||
<!-- Clock Location: Managers see all, Users see active ones for their company -->
|
||||
<record id="rule_clock_location_user" model="ir.rule">
|
||||
<field name="name">Clock Location: User sees active company locations</field>
|
||||
<field name="model_id" ref="model_fusion_clock_location"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids), ('active', '=', True)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_fusion_clock_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"/>
|
||||
</record>
|
||||
|
||||
<record id="rule_clock_location_manager" model="ir.rule">
|
||||
<field name="name">Clock Location: Manager full access</field>
|
||||
<field name="model_id" ref="model_fusion_clock_location"/>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_fusion_clock_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Clock Penalty: Users see own, Managers see all -->
|
||||
<record id="rule_clock_penalty_user" model="ir.rule">
|
||||
<field name="name">Clock Penalty: User sees own penalties</field>
|
||||
<field name="model_id" ref="model_fusion_clock_penalty"/>
|
||||
<field name="domain_force">[('employee_id.user_id', '=', user.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_fusion_clock_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"/>
|
||||
</record>
|
||||
|
||||
<record id="rule_clock_penalty_manager" model="ir.rule">
|
||||
<field name="name">Clock Penalty: Manager full access</field>
|
||||
<field name="model_id" ref="model_fusion_clock_penalty"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_fusion_clock_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Clock Report: Users see own, Managers see all -->
|
||||
<record id="rule_clock_report_user" model="ir.rule">
|
||||
<field name="name">Clock Report: User sees own reports</field>
|
||||
<field name="model_id" ref="model_fusion_clock_report"/>
|
||||
<field name="domain_force">['|', ('employee_id.user_id', '=', user.id), ('employee_id', '=', False)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_fusion_clock_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"/>
|
||||
</record>
|
||||
|
||||
<record id="rule_clock_report_manager" model="ir.rule">
|
||||
<field name="name">Clock Report: Manager full access</field>
|
||||
<field name="model_id" ref="model_fusion_clock_report"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_fusion_clock_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Portal access for attendance records -->
|
||||
<record id="rule_hr_attendance_portal" model="ir.rule">
|
||||
<field name="name">HR Attendance: Portal user sees own</field>
|
||||
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
|
||||
<field name="domain_force">[('employee_id.user_id', '=', user.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>
|
||||
|
||||
<!-- Portal access for clock locations -->
|
||||
<record id="rule_clock_location_portal" model="ir.rule">
|
||||
<field name="name">Clock Location: Portal user sees active</field>
|
||||
<field name="model_id" ref="model_fusion_clock_location"/>
|
||||
<field name="domain_force">[('active', '=', True)]</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>
|
||||
|
||||
<!-- Portal access for clock reports -->
|
||||
<record id="rule_clock_report_portal" model="ir.rule">
|
||||
<field name="name">Clock Report: Portal user sees own</field>
|
||||
<field name="model_id" ref="model_fusion_clock_report"/>
|
||||
<field name="domain_force">[('employee_id.user_id', '=', user.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>
|
||||
|
||||
<!-- Portal access for clock penalties -->
|
||||
<record id="rule_clock_penalty_portal" model="ir.rule">
|
||||
<field name="name">Clock Penalty: Portal user sees own</field>
|
||||
<field name="model_id" ref="model_fusion_clock_penalty"/>
|
||||
<field name="domain_force">[('employee_id.user_id', '=', user.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>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user