Odoo访问权限(一)
四个ODOO权限管理层次
一. Odoo 菜单级别: 即,不属于指定菜单所包含组的用户看不到该菜单。不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问
二. Odoo 对象级别: 即,对某个对象是否有‘创建,读取,修改,删除“的权限。OE中的对象可以简单理解为表对象,比如“客户”,“产品”,“销售订单”等都是对象
三. Odoo 记录级别: 即,对对象表中的数据的访问权限。比如同样访问“客户”对象,业务员只能对自己创建的客户有访问的权限,而经理可以访问其所辖的业务员的所有“客户”对象,这里的访问也可以进一步明细到“创建,读取,修改,删除”的权限
四. 字段级别: 即,一个对象或表上的某些字段的访问权限。比如产品的成本字段只有经理有读权限,比如订单上的单价字段只有经理才有修改的权限等。
本章节介绍一二层次的权限
在security文件夹下新建两个文件夹
model_security.xml
ir.model.access.csv
用户组实例
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record model="ir.module.category" id="module_category_activity">
<field name="name"> 活动管理 </field>
</record>
<record model="res.groups" id="group_activity_user">
<field name="name"> 用户 </field>
<field name="category_id" ref="module_category_activity"/>
</record>
<record model="res.groups" id="group_activity_manager">
<field name="name"> 管理 </field>
<field name="implied_ids" eval="[(4, ref('group_activity_user'))]"/>
<field name="category_id" ref="module_category_activity"/>
</record>
</data>
</odoo>
权限分配实例
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_activity_event_user,读权限,model_activity_event,group_activity_user,1,0,0,0
access_activity_event_system_user,管理权限,model_activity_event,group_activity_manager,1,1,1,1
access_activity_type_user,分类读权限,model_activity_type,group_activity_user,1,0,0,0
access_activity_type_system_user,分类管理权限,model_activity_type,group_activity_manager,1,1,1,1
id: 可以自定义,不能重复
name: 自定义就可以
model_id:id: model_模型名称。注意,这里要把“.”全部换成“_”,否则会报错。
perm_read:读权限。有权限写‘1’,没权限写‘0’
perm_write: 编辑权限。有权限写‘1’,没权限写‘0’
perm_create: 创建权限。有权限写‘1’,没权限写‘0’
perm_unlink: 删除权限。有权限写‘1’,没权限写‘0’
重点注意
-
要在__manifest__.py文件中引入以上新建的两个文件
# always loaded 'data': [ 'security/activity_security.xml', 'security/ir.model.access.csv', 'views/views.xml', 'views/templates.xml', 'views/menus.xml', 'data/activity_data.xml', ],
最后安装或升级项目模块就可以试试效果了