summaryrefslogtreecommitdiff
path: root/addons/hr_expense/security
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_expense/security
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/hr_expense/security')
-rw-r--r--addons/hr_expense/security/hr_expense_security.xml30
-rw-r--r--addons/hr_expense/security/ir.model.access.csv17
-rw-r--r--addons/hr_expense/security/ir_rule.xml74
3 files changed, 121 insertions, 0 deletions
diff --git a/addons/hr_expense/security/hr_expense_security.xml b/addons/hr_expense/security/hr_expense_security.xml
new file mode 100644
index 00000000..dcece81f
--- /dev/null
+++ b/addons/hr_expense/security/hr_expense_security.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record model="ir.module.category" id="base.module_category_human_resources_expenses">
+ <field name="description">Helps you manage your expenses.</field>
+ <field name="sequence">12</field>
+ </record>
+
+ <record id="group_hr_expense_team_approver" model="res.groups">
+ <field name="name">Team Approver</field>
+ <field name="category_id" ref="base.module_category_human_resources_expenses"/>
+ <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
+ </record>
+
+ <record id="group_hr_expense_user" model="res.groups">
+ <field name="name">All Approver</field>
+ <field name="category_id" ref="base.module_category_human_resources_expenses"/>
+ <field name="implied_ids" eval="[(4, ref('hr_expense.group_hr_expense_team_approver'))]"/>
+ </record>
+
+ <record id="group_hr_expense_manager" model="res.groups">
+ <field name="name">Administrator</field>
+ <field name="category_id" ref="base.module_category_human_resources_expenses"/>
+ <field name="implied_ids" eval="[(4, ref('hr_expense.group_hr_expense_user'))]"/>
+ <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
+ </record>
+
+ <record id="base.default_user" model="res.users">
+ <field name="groups_id" eval="[(4,ref('hr_expense.group_hr_expense_manager'))]"/>
+ </record>
+</odoo>
diff --git a/addons/hr_expense/security/ir.model.access.csv b/addons/hr_expense/security/ir.model.access.csv
new file mode 100644
index 00000000..20b500b2
--- /dev/null
+++ b/addons/hr_expense/security/ir.model.access.csv
@@ -0,0 +1,17 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_expense_employee,hr.expense.employee,model_hr_expense,base.group_user,1,1,1,1
+access_hr_expense_sheet_employee,hr.expense.sheet.employee,model_hr_expense_sheet,base.group_user,1,1,1,1
+access_hr_expense_user,hr.expense.user,model_hr_expense,hr_expense.group_hr_expense_team_approver,1,1,1,1
+access_hr_expense_sheet_user,hr.expense.sheet.user,model_hr_expense_sheet,hr_expense.group_hr_expense_team_approver,1,1,1,1
+access_hr_expense_manager,hr.expense.manager,model_hr_expense,hr_expense.group_hr_expense_manager,1,1,1,1
+access_hr_expense_sheet_manager,hr.expense.sheet.manager,model_hr_expense_sheet,hr_expense.group_hr_expense_manager,1,1,1,1
+access_product_product_hr_expense_user,product.product.hr.expense.user,product.model_product_product,hr_expense.group_hr_expense_manager,1,1,1,1
+access_product_template_hr_expense_user,product.template.hr.expense.user,product.model_product_template,hr_expense.group_hr_expense_manager,1,1,1,1
+access_uom_uom_hr_expense_user,uom.uom.hr.expense.user,uom.model_uom_uom,hr_expense.group_hr_expense_team_approver,1,1,1,1
+access_account_journal_user,account.journal.user,account.model_account_journal,hr_expense.group_hr_expense_team_approver,1,1,1,1
+access_account_journal_employee,account.journal.employee,account.model_account_journal,base.group_user,1,0,0,0
+access_account_move_user,account.move.hr.expense.approver,account.model_account_move,hr_expense.group_hr_expense_team_approver,1,0,0,0
+access_account_move_line_user,account.move.line.hr.expense.approver,account.model_account_move_line,hr_expense.group_hr_expense_team_approver,1,0,0,0
+access_account_analytic_line_user,account.analytic.line.user,account.model_account_analytic_line,hr_expense.group_hr_expense_team_approver,1,1,1,1
+access_mail_activity_type_expense_user,mail.activity.type.expense.user,mail.model_mail_activity_type,hr_expense.group_hr_expense_manager,1,1,1,1
+access_hr_expense_refuse_wizard,access.hr.expense.refuse.wizard,model_hr_expense_refuse_wizard,hr_expense.group_hr_expense_team_approver,1,1,1,0
diff --git a/addons/hr_expense/security/ir_rule.xml b/addons/hr_expense/security/ir_rule.xml
new file mode 100644
index 00000000..b775a454
--- /dev/null
+++ b/addons/hr_expense/security/ir_rule.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo noupdate="1">
+
+ <record id="ir_rule_hr_expense_manager" model="ir.rule">
+ <field name="name">Manager Expense</field>
+ <field name="model_id" ref="model_hr_expense"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[
+ (4, ref('account.group_account_user')),
+ (4, ref('hr_expense.group_hr_expense_user'))]"/>
+ </record>
+ <record id="ir_rule_hr_expense_approver" model="ir.rule">
+ <field name="name">Team Approver Expense</field>
+ <field name="model_id" ref="model_hr_expense"/>
+ <field name="domain_force">['|', '|', '|',
+ ('employee_id.user_id', '=', user.id),
+ ('employee_id.department_id.manager_id.user_id', '=', user.id),
+ ('employee_id.parent_id.user_id', '=', user.id),
+ ('employee_id.expense_manager_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('hr_expense.group_hr_expense_team_approver'))]"/>
+ </record>
+ <record id="ir_rule_hr_expense_employee" model="ir.rule">
+ <field name="name">Employee Expense</field>
+ <field name="model_id" ref="model_hr_expense"/>
+ <field name="domain_force">[('employee_id.user_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('base.group_user'))]"/>
+ </record>
+
+ <record id="ir_rule_hr_expense_sheet_manager" model="ir.rule">
+ <field name="name">Manager Expense Sheet</field>
+ <field name="model_id" ref="model_hr_expense_sheet"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[
+ (4, ref('account.group_account_user')),
+ (4, ref('hr_expense.group_hr_expense_user'))]"/>
+ </record>
+ <record id="ir_rule_hr_expense_sheet_approver" model="ir.rule">
+ <field name="name">Approver Expense Sheet</field>
+ <field name="model_id" ref="model_hr_expense_sheet"/>
+ <field name="domain_force">['|', '|', '|',
+ ('employee_id.user_id', '=', user.id),
+ ('employee_id.department_id.manager_id.user_id', '=', user.id),
+ ('employee_id.parent_id.user_id', '=', user.id),
+ ('employee_id.expense_manager_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('hr_expense.group_hr_expense_team_approver'))]"/>
+ </record>
+ <record id="ir_rule_hr_expense_sheet_employee" model="ir.rule">
+ <field name="name">Employee Expense Sheet</field>
+ <field name="model_id" ref="model_hr_expense_sheet"/>
+ <field name="domain_force">[('employee_id.user_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('base.group_user'))]"/>
+ </record>
+
+ <record id="hr_expense_comp_rule" model="ir.rule">
+ <field name="name">Expense multi company rule</field>
+ <field name="model_id" ref="model_hr_expense"/>
+ <field eval="True" name="global"/>
+ <field name="domain_force">['|',('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
+ </record>
+ <record id="hr_expense_report_comp_rule" model="ir.rule">
+ <field name="name">Expense Report multi company rule</field>
+ <field name="model_id" ref="model_hr_expense_sheet"/>
+ <field eval="True" name="global"/>
+ <field name="domain_force">['|',('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
+ </record>
+
+ <record id="hr_expense_team_approver_account_move_line_rule" model="ir.rule">
+ <field name="name">Expense Team Approver Account Move Line</field>
+ <field name="model_id" ref="account.model_account_move_line"/>
+ <field name="domain_force">[('expense_id', '!=', False)]</field>
+ <field name="groups" eval="[(4, ref('hr_expense.group_hr_expense_team_approver'))]"/>
+ </record>
+
+</odoo>