权限一张图
权限详解文字版
(部分转载并补充)
在Odoo中,使用用户组(res.groups)来管理权限,一个特殊的用户组是 员工/员工(base.group_user) 组,所有的用户都属于这个组,这个组里包含一些基本的权限。
四种权限级别(粒度越来越细):
1.菜单/对象级别
设置哪些人可以访问哪些菜单/对象,对象的访问权限包括创建、读、写、删除。
2.记录级别
设置哪些人可以访问哪些记录,也就是设置表的查询条件。
3.字段级别
设置表中的字段的访问权限。
4.工作流级别(很少用到)
在工作流的每一步迁移中,设置哪些角色允许触发本迁移
下面示例使用的是account模块中的代码,所以大家有什么问题可以去odoo源码查询。
关于权限的文件一般在security文件夹中,
xxx_security.xml文件定义用户组和用户组对菜单的访问权限
ir.model.access.csv定义用户组对对象的权限矩阵
菜单/对象级别
用户组
首先创建一个组分类(表示很多组属于一个分类):
<record id="base.module_category_accounting_and_finance" model="ir.module.category">
<field name="name">module_category_accounting_and_finance</field>
<field name="sequence">57</field>
</record>
再创建一个用户组:
<record id="group_account_invoice" model="res.groups">
<!-- 组的名字,如:员工 -->
<field name="name">Billing</field>
<!-- 此组属于的组分类 -->
<field name="category_id" ref="base.module_category_accounting_and_finance"/>
<!-- 继承的组,也就是说这个组也拥有这些继承组的权限 -->
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
修改这个组的一些内容,如:给这组加上一个用户:
<record id=