summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Snauwaert <csn@openerp.com>2012-12-04 17:20:56 +0100
committerCedric Snauwaert <csn@openerp.com>2012-12-04 17:20:56 +0100
commita56f37e6f4b5207fb437db5c5ad08a3ad0e92a62 (patch)
tree6adeb51c8be73903a5bb6ec93a039a5ffdd5fc89
parent524694747b1a80e881ebdc1f33e40236ac45f8d0 (diff)
[ADD]access rules and groups
bzr revid: csn@openerp.com-20121204162056-cacua9dw1shg5fnv
-rw-r--r--addons/fleet/__openerp__.py2
-rw-r--r--addons/fleet/fleet_board_view.xml11
-rw-r--r--addons/fleet/fleet_view.xml30
-rw-r--r--addons/fleet/security/fleet_security.xml109
-rw-r--r--addons/fleet/security/ir.model.access.csv34
5 files changed, 154 insertions, 32 deletions
diff --git a/addons/fleet/__openerp__.py b/addons/fleet/__openerp__.py
index 3a40e7dfc0a..f1e0d1a8580 100644
--- a/addons/fleet/__openerp__.py
+++ b/addons/fleet/__openerp__.py
@@ -52,7 +52,7 @@ Main Features
'fleet_data.xml',
'fleet_board_view.xml',
],
- 'update_xml' : ['security/ir.model.access.csv'],
+ 'update_xml' : ['security/fleet_security.xml','security/ir.model.access.csv'],
'demo': ['fleet_cars.xml','fleet_demo.xml'],
diff --git a/addons/fleet/fleet_board_view.xml b/addons/fleet/fleet_board_view.xml
index 760fc1cf583..41093d2c283 100644
--- a/addons/fleet/fleet_board_view.xml
+++ b/addons/fleet/fleet_board_view.xml
@@ -135,17 +135,20 @@
<menuitem id="menu_fleet_dashboard"
parent="base.menu_reporting_dashboard"
action="open_board_fleet"
- sequence="50"/>
+ sequence="50"
+ groups="group_fleet_user"/>
- <menuitem name="Fleet" parent="base.menu_reporting" id="menu_fleet_reporting" sequence="50" />
+ <menuitem name="Fleet" parent="base.menu_reporting" id="menu_fleet_reporting" sequence="50" groups="group_fleet_manager"/>
<menuitem id="menu_fleet_reporting_costs"
parent="menu_fleet_reporting"
action="action_fleet_reporting_costs"
- sequence="1"/>
+ sequence="1"
+ groups="group_fleet_manager"/>
<menuitem id="menu_fleet_reporting_indicative_costs"
parent="menu_fleet_reporting"
action="action_fleet_reporting_costs_non_effective"
- sequence="2"/>
+ sequence="2"
+ groups="group_fleet_manager"/>
</data>
</openerp>
diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml
index 416ca191a6e..9cceb594884 100644
--- a/addons/fleet/fleet_view.xml
+++ b/addons/fleet/fleet_view.xml
@@ -149,11 +149,11 @@
</field>
</record>
- <menuitem name="Fleet" id="menu_root" sequence="110" />
- <menuitem name="Configuration" parent="menu_root" id="fleet_configuration" sequence="3" />
+ <menuitem name="Fleet" id="menu_root" sequence="110" groups="group_fleet_user"/>
+ <menuitem name="Configuration" parent="menu_root" id="fleet_configuration" sequence="3" groups="group_fleet_manager"/>
<menuitem action="fleet_vehicle_model_act" parent="fleet_configuration" id="fleet_vehicle_model_menu" groups="base.group_no_one"/>
<menuitem action="fleet_vehicle_model_brand_act" parent="fleet_configuration" id="fleet_vehicle_model_brand_menu" groups="base.group_no_one"/>
- <menuitem action="fleet_vehicle_state_act" parent="fleet_configuration" id="fleet_vehicle_state_menu" />
+ <menuitem action="fleet_vehicle_state_act" parent="fleet_configuration" id="fleet_vehicle_state_menu" groups="group_fleet_manager"/>
<record model='ir.ui.view' id='fleet_vehicle_form'>
<field name="name">fleet.vehicle.form</field>
@@ -179,7 +179,7 @@
</div>
<div class="oe_right oe_button_box">
<button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_contract_act'}" string="Contracts" help="show the contract for this vehicle" />
- <button name="act_show_log_cost" type="object" string="Costs" help="show all the costs for this vehicle" />
+ <button name="act_show_log_cost" type="object" string="Costs" help="show all the costs for this vehicle" groups="fleet.group_fleet_manager"/>
<button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_services_act'}" string="Services" help="show the services logs for this vehicle" />
<button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_fuel_act'}" string="Fuel Logs" help="show the fuel logs for this vehicle" />
<button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_odometer_act'}" string="Odometer Logs" help="show the odometer logs for this vehicle" />
@@ -347,8 +347,8 @@
</field>
</record>
- <menuitem name="Vehicles" parent="menu_root" id="fleet_vehicles" sequence="2" />
- <menuitem action="fleet_vehicle_act" parent="fleet_vehicles" id="fleet_vehicle_menu" />
+ <menuitem name="Vehicles" parent="menu_root" id="fleet_vehicles" sequence="2" groups="group_fleet_user"/>
+ <menuitem action="fleet_vehicle_act" parent="fleet_vehicles" id="fleet_vehicle_menu" groups="group_fleet_user"/>
@@ -358,10 +358,10 @@
<field name="arch" type="xml">
<form string="Contract logs" version="7.0">
<header>
- <button modifiers="{'invisible': [['state', '=', 'closed']]}" name="contract_close" states="open" type="object" class="oe_highlight" string="Terminate Contract"/>
- <button modifiers="{'invisible': [['state', '=', 'closed']]}" name="contract_close" states="toclose" type="object" class="oe_highlight" string="Terminate Contract"/>
- <button modifiers="{'invisible': [['state', 'not in', ['closed']]]}" name="contract_open" states="closed" type="object" class="oe_highlight" string="Set Contract In Progress"/>
- <button class="oe_highlight" name="act_renew_contract" type="object" string="Renew Contract" help="Create a new contract automatically with all the same informations except for the date that will start at the end of current contract" />
+ <button modifiers="{'invisible': [['state', '=', 'closed']]}" name="contract_close" states="open" type="object" class="oe_highlight" string="Terminate Contract" groups="fleet.group_fleet_manager"/>
+ <button modifiers="{'invisible': [['state', '=', 'closed']]}" name="contract_close" states="toclose" type="object" class="oe_highlight" string="Terminate Contract" groups="fleet.group_fleet_manager"/>
+ <button modifiers="{'invisible': [['state', 'not in', ['closed']]]}" name="contract_open" states="closed" type="object" class="oe_highlight" string="Set Contract In Progress" groups="fleet.group_fleet_manager"/>
+ <button class="oe_highlight" name="act_renew_contract" type="object" string="Renew Contract" help="Create a new contract automatically with all the same informations except for the date that will start at the end of current contract" groups="fleet.group_fleet_manager"/>
<field name="state" widget="statusbar" />
</header>
<sheet>
@@ -491,7 +491,7 @@
</field>
</record>
- <menuitem action="fleet_vehicle_log_contract_act" parent="fleet_vehicles" id="fleet_vehicle_log_contract_menu" />
+ <menuitem action="fleet_vehicle_log_contract_act" parent="fleet_vehicles" id="fleet_vehicle_log_contract_menu" groups="group_fleet_user"/>
<record model='ir.ui.view' id='fleet_vehicle_odometer_form'>
<field name="name">fleet.vehicle.odometer.form</field>
@@ -568,7 +568,7 @@
</field>
</record>
- <menuitem action="fleet_vehicle_odometer_act" parent="fleet_vehicles" id="fleet_vehicle_odometer_menu" />
+ <menuitem action="fleet_vehicle_odometer_act" parent="fleet_vehicles" id="fleet_vehicle_odometer_menu" groups="group_fleet_user"/>
<record model='ir.ui.view' id='fleet_vehicle_log_fuel_form'>
<field name="name">fleet.vehicle.log.fuel.form</field>
@@ -657,7 +657,7 @@
</field>
</record>
- <menuitem action="fleet_vehicle_log_fuel_act" parent="fleet_vehicles" id="fleet_vehicle_log_fuel_menu" />
+ <menuitem action="fleet_vehicle_log_fuel_act" parent="fleet_vehicles" id="fleet_vehicle_log_fuel_menu" groups="group_fleet_user"/>
<record model='ir.ui.view' id='fleet_vehicle_log_services_form'>
@@ -749,7 +749,7 @@
</field>
</record>
- <menuitem action="fleet_vehicle_log_services_act" parent="fleet_vehicles" id="fleet_vehicle_log_services_menu" />
+ <menuitem action="fleet_vehicle_log_services_act" parent="fleet_vehicles" id="fleet_vehicle_log_services_menu" groups="group_fleet_user"/>
<record model='ir.ui.view' id='fleet_vehicle_service_types_tree'>
<field name="name">fleet.service.type.tree</field>
@@ -870,7 +870,7 @@
</field>
</record>
- <menuitem action="fleet_vehicle_costs_act" parent="fleet_vehicles" id="fleet_vehicle_costs_menu" />
+ <menuitem action="fleet_vehicle_costs_act" parent="fleet_vehicles" id="fleet_vehicle_costs_menu" groups="group_fleet_manager"/>
<!--
<record model='ir.ui.view' id='fleet_hr_employee_form'>
<field name="name">fleet.hr.employee.form</field>
diff --git a/addons/fleet/security/fleet_security.xml b/addons/fleet/security/fleet_security.xml
new file mode 100644
index 00000000000..6351d23b55e
--- /dev/null
+++ b/addons/fleet/security/fleet_security.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" ?>
+<openerp>
+ <data>
+ <record model="ir.module.category" id="module_fleet_category">
+ <field name="name">Fleet</field>
+ <field name="sequence">17</field>
+ </record>
+ <record id="group_fleet_user" model="res.groups">
+ <field name="name">User</field>
+ <field name="category_id" ref="module_fleet_category"/>
+ </record>
+ <record id="group_fleet_manager" model="res.groups">
+ <field name="name">Manager</field>
+ <field name="implied_ids" eval="[(4, ref('group_fleet_user'))]"/>
+ <field name="category_id" ref="module_fleet_category"/>
+ </record>
+ <record id="fleet_user_contract_visibility" model="ir.rule">
+ <field name="name">User can only see his/her contracts</field>
+ <field name="model_id" ref="model_fleet_vehicle_log_contract"/>
+ <field name="groups" eval="[(4, ref('group_fleet_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">[('cost_id.vehicle_id.driver.id','=',user.partner_id.id)]</field>
+ </record>
+ <record id="fleet_user_cost_visibility" model="ir.rule">
+ <field name="name">User can only see his/her costs</field>
+ <field name="model_id" ref="model_fleet_vehicle_cost"/>
+ <field name="groups" eval="[(4, ref('group_fleet_user'))]"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_unlink" eval="False"/>
+ <field name="domain_force">[('vehicle_id.driver.id','=',user.partner_id.id)]</field>
+ </record>
+ <record id="fleet_user_service_visibility" model="ir.rule">
+ <field name="name">User can only see his/her vehicle's services</field>
+ <field name="model_id" ref="model_fleet_vehicle_log_services"/>
+ <field name="groups" eval="[(4, ref('group_fleet_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">[('cost_id.vehicle_id.driver.id','=',user.partner_id.id)]</field>
+ </record>
+ <record id="fleet_user_odometer_visibility" model="ir.rule">
+ <field name="name">User can only see his/her vehicle's odometer</field>
+ <field name="model_id" ref="model_fleet_vehicle_odometer"/>
+ <field name="groups" eval="[(4, ref('group_fleet_user'))]"/>
+ <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">[('vehicle_id.driver.id','=',user.partner_id.id)]</field>
+ </record>
+ <record id="fleet_user_fuel_log_visibility" model="ir.rule">
+ <field name="name">User can only see his/her vehicle's fuel log</field>
+ <field name="model_id" ref="model_fleet_vehicle_log_fuel"/>
+ <field name="groups" eval="[(4, ref('group_fleet_user'))]"/>
+ <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">[('cost_id.vehicle_id.driver.id','=',user.partner_id.id)]</field>
+ </record>
+ <record id="fleet_user_vehicle_visibility" model="ir.rule">
+ <field name="name">User can only see his/her vehicle</field>
+ <field name="model_id" ref="model_fleet_vehicle"/>
+ <field name="groups" eval="[(4, ref('group_fleet_user'))]"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_unlink" eval="False"/>
+ <field name="domain_force">[('driver.id','=',user.partner_id.id)]</field>
+ </record>
+ <record id="fleet_user_contract_visibility_manager" model="ir.rule">
+ <field name="name">Manager has all rights on vehicle's contracts</field>
+ <field name="model_id" ref="model_fleet_vehicle_log_contract"/>
+ <field name="groups" eval="[(4, ref('group_fleet_manager'))]"/>
+ </record>
+ <record id="fleet_user_cost_visibility_manager" model="ir.rule">
+ <field name="name">Manager has all rights on vehicle's costs</field>
+ <field name="model_id" ref="model_fleet_vehicle_cost"/>
+ <field name="groups" eval="[(4, ref('group_fleet_manager'))]"/>
+ </record>
+ <record id="fleet_user_service_visibility_manager" model="ir.rule">
+ <field name="name">Manager has all rights on vehicle's services</field>
+ <field name="model_id" ref="model_fleet_vehicle_log_services"/>
+ <field name="groups" eval="[(4, ref('group_fleet_manager'))]"/>
+ </record>
+ <record id="fleet_user_odometer_visibility_manager" model="ir.rule">
+ <field name="name">Manager has all rights on vehicle's vehicle's odometer</field>
+ <field name="model_id" ref="model_fleet_vehicle_odometer"/>
+ <field name="groups" eval="[(4, ref('group_fleet_manager'))]"/>
+ </record>
+ <record id="fleet_user_fuel_log_visibility_manager" model="ir.rule">
+ <field name="name">Manager has all rights on vehicle's fuel log</field>
+ <field name="model_id" ref="model_fleet_vehicle_log_fuel"/>
+ <field name="groups" eval="[(4, ref('group_fleet_manager'))]"/>
+ </record>
+ <record id="fleet_user_vehicle_visibility_manager" model="ir.rule">
+ <field name="name">Manager has all rights on vehicle</field>
+ <field name="model_id" ref="model_fleet_vehicle"/>
+ <field name="groups" eval="[(4, ref('group_fleet_manager'))]"/>
+ </record>
+
+ </data>
+</openerp>
diff --git a/addons/fleet/security/ir.model.access.csv b/addons/fleet/security/ir.model.access.csv
index 823b3cb2945..ecb8ec307b4 100644
--- a/addons/fleet/security/ir.model.access.csv
+++ b/addons/fleet/security/ir.model.access.csv
@@ -1,13 +1,23 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
-fleet_vehicle_model_access_right,fleet_vehicle_model_access_right,model_fleet_vehicle_model,,1,1,1,1
-fleet_vehicle_tag_access_right,fleet_vehicle_tag_access_right,model_fleet_vehicle_tag,,1,1,1,1
-fleet_vehicle_state_access_right,fleet_vehicle_state_access_right,model_fleet_vehicle_state,,1,1,1,1
-fleet_vehicle_odometer_access_right,fleet_vehicle_odometer_access_right,model_fleet_vehicle_odometer,,1,1,1,1
-fleet_vehicle_model_brand_access_right,fleet_vehicle_model_brand_access_right,model_fleet_vehicle_model_brand,,1,1,1,1
-fleet_vehicle_access_right,fleet_vehicle_access_right,model_fleet_vehicle,,1,1,1,1
-fleet_vehicle_log_fuel_access_right,fleet_vehicle_log_fuel_access_right,model_fleet_vehicle_log_fuel,,1,1,1,1
-fleet_vehicle_log_services_access_right,fleet_vehicle_log_services_access_right,model_fleet_vehicle_log_services,,1,1,1,1
-fleet_vehicle_log_contract_access_right,fleet_vehicle_log_contract_access_right,model_fleet_vehicle_log_contract,,1,1,1,1
-fleet_service_type_access_right,fleet_service_type_access_right,model_fleet_service_type,,1,1,1,1
-access_fleet_vehicle_cost,access_fleet_vehicle_cost,model_fleet_vehicle_cost,,1,1,1,1
-access_fleet_contract_state,access_fleet_contract_state,model_fleet_contract_state,,1,1,1,1
+fleet_vehicle_model_access_right_user,fleet_vehicle_model_access_right,model_fleet_vehicle_model,group_fleet_user,1,0,0,0
+fleet_vehicle_tag_access_right_user,fleet_vehicle_tag_access_right,model_fleet_vehicle_tag,group_fleet_user,1,0,0,0
+fleet_vehicle_state_access_right_user,fleet_vehicle_state_access_right,model_fleet_vehicle_state,group_fleet_user,1,0,0,0
+fleet_vehicle_model_brand_access_right_user,fleet_vehicle_model_brand_access_right,model_fleet_vehicle_model_brand,group_fleet_user,1,0,0,0
+fleet_vehicle_access_right_user,fleet_vehicle_access_right",model_fleet_vehicle,group_fleet_user,1,1,0,0
+fleet_vehicle_log_services_access_right_user,fleet_vehicle_log_services_access_right,model_fleet_vehicle_log_services,group_fleet_user,1,0,0,0
+fleet_vehicle_log_contract_access_right_user,fleet_vehicle_log_contract_access_right,model_fleet_vehicle_log_contract,group_fleet_user,1,0,0,0
+fleet_service_type_access_right_user,fleet_service_type_access_right,model_fleet_service_type,group_fleet_user,1,0,0,0
+access_fleet_vehicle_cost_user,access_fleet_vehicle_cost,model_fleet_vehicle_cost,group_fleet_user,1,1,1,0
+access_fleet_contract_state_user,access_fleet_contract_state,model_fleet_contract_state,group_fleet_user,1,0,0,0
+fleet_vehicle_model_access_right,fleet_vehicle_model_access_right,model_fleet_vehicle_model,group_fleet_manager,1,1,1,1
+fleet_vehicle_tag_access_right,fleet_vehicle_tag_access_right,model_fleet_vehicle_tag,group_fleet_manager,1,1,1,1
+fleet_vehicle_state_access_right,fleet_vehicle_state_access_right,model_fleet_vehicle_state,group_fleet_manager,1,1,1,1
+fleet_vehicle_odometer_access_right,fleet_vehicle_odometer_access_right,model_fleet_vehicle_odometer,group_fleet_user,1,1,1,1
+fleet_vehicle_model_brand_access_right,fleet_vehicle_model_brand_access_right,model_fleet_vehicle_model_brand,group_fleet_manager,1,1,1,1
+fleet_vehicle_access_right,fleet_vehicle_access_right,model_fleet_vehicle,group_fleet_manager,1,1,1,1
+fleet_vehicle_log_fuel_access_right,fleet_vehicle_log_fuel_access_right,model_fleet_vehicle_log_fuel,group_fleet_user,1,1,1,1
+fleet_vehicle_log_services_access_right,fleet_vehicle_log_services_access_right,model_fleet_vehicle_log_services,group_fleet_manager,1,1,1,1
+fleet_vehicle_log_contract_access_right,fleet_vehicle_log_contract_access_right,model_fleet_vehicle_log_contract,group_fleet_manager,1,1,1,1
+fleet_service_type_access_right,fleet_service_type_access_right,model_fleet_service_type,group_fleet_manager,1,1,1,1
+access_fleet_vehicle_cost,access_fleet_vehicle_cost,model_fleet_vehicle_cost,group_fleet_manager,1,1,1,1
+access_fleet_contract_state,access_fleet_contract_state,model_fleet_contract_state,group_fleet_manager,1,1,1,1 \ No newline at end of file