diff options
| author | Cedric Snauwaert <csn@openerp.com> | 2012-12-04 17:20:56 +0100 |
|---|---|---|
| committer | Cedric Snauwaert <csn@openerp.com> | 2012-12-04 17:20:56 +0100 |
| commit | a56f37e6f4b5207fb437db5c5ad08a3ad0e92a62 (patch) | |
| tree | 6adeb51c8be73903a5bb6ec93a039a5ffdd5fc89 | |
| parent | 524694747b1a80e881ebdc1f33e40236ac45f8d0 (diff) | |
[ADD]access rules and groups
bzr revid: csn@openerp.com-20121204162056-cacua9dw1shg5fnv
| -rw-r--r-- | addons/fleet/__openerp__.py | 2 | ||||
| -rw-r--r-- | addons/fleet/fleet_board_view.xml | 11 | ||||
| -rw-r--r-- | addons/fleet/fleet_view.xml | 30 | ||||
| -rw-r--r-- | addons/fleet/security/fleet_security.xml | 109 | ||||
| -rw-r--r-- | addons/fleet/security/ir.model.access.csv | 34 |
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 |
