
大多数情况下,Odoo由多用户组织使用。每个组织中的每个用户有着不同的角色,根据角色拥有不同的权限。例如,生产主管无法访问公司的财务信息。通过访问权限和记录规则,可以指定特定用户能够访问Odoo中哪些信息。Odoo的权限的核心是权限组(res_groups)。对每个权限组,可以设置权限组的菜单表示,对象表示,记录规则表示,字段表示。
1.1 确保插件模块的__manifest__.py声明文件中定义有category键:'category': 'Library',
1.2 在security/library_security.xml中新增数据记录的XML文件,先使用一个空的结构:

1.3 在security/library_security.xml中新增数据记录的XML文件,先使用一个空的结构:

1.4 在XML数据元素中添加两个新组的record标签:

安全组中有以下的额外字段:
菜单(menu_access字段):用于指定安全组所能访问的菜单项
视图(view_access字段):用于指定安全组所能访问的UI视图
访问权限(model_access字段):用于指定安全组所能访问的模型,在为模型添加访问权限一节中会进行详述
访问规则(rule_groups字段):一些应用于安全组的记录级权限规则,在限制模型中字段的访问一节中会进行详述
提示(comment字段):这是安全组的描述或注释文本
2.1 菜单、报表的访问权限
Odoo可以设置菜单项、某些报表的可见性,通过在xml文件中,对应的menu标签、report标签的groups属性来定义。
2.2 模型的访问权限设置
1. 编辑__manifest__.py文件来声明一个新的数据文件:
2. 模块中新增一个包含如下内容的security/ir.model.access.csv文件
CSV文件中的字段如下:
2.3 记录的访问权限设置
1. 在声明文件的 data 键中添加security/library_security.xml文件:

2. 在xml 文件中
在记录规则未分配给任何安全组时,它被标记为全局并由不同的规则来进行处理。
全局记录规则比组级记录规则影响要更深广,它设置一些无法覆盖的访问限制。技术层面,它们通过AND运算符来进行连接。在标准模块中,它们用于实现多公司安全访问,这样每个用户仅能看到自己公司的数据。
2.4 字段的访问权限设置
Odoo可以设置具体字段的访问权限,包括可见性、写、改权限等。
有两种方式:
1.是在模型定义的代码中,通过某字段的read=[群组]、write=[群组]属性,指定字段对于哪些群组可读写。
2.是在模型的视图xml文件中,对字段通过 groups属性指定访问权限。


