Odoo 中使用安全组来实现,权限授予组,组中分配用户。Odoo 应用通常有两个组:针对普通用户的用户组,包含额外应用配置权限的管理员组。
1. 安全组(group)
security/模型名_security.xml
security/ir.model.access.csv
(1)建立安全组(security/activity_security.xml)
字段类型 | 说明 |
---|---|
name | 用户组组名 |
category_id | 关联应用,这是一个关联字段,因此使用了 ref 属性来通过 XML ID 连接已创建的分类 |
implied_ids | 这是一个one-to-many关联字段,包含一系列组来对组内用户生效 |
model_id | 模块id,对应ir.model.access.csv文件中定义的model_id |
domain_forc | 域表达式。[(字段名,操作符,值), (字段名,操作符,值)] |
groups | 用户组id。base.group_user,是系统内置的员工组的外部id |
<?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>
(2)定义组的权限(security/ir.model.access.csv)
字段类型 | 说明 |
---|---|
id | 权限的ID,自定义,不能重复 |
name | 权限名称,自定义 |
model_id:id | model_模型名称。(注意把“.”全部换成“_”,否则会报错) |
perm_read,perm_write,perm_create,perm_unlink | 读、写、增加、删除权限,1是有权限,0是无权限,具体根据需要来设置权限 |
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_activity_user,access_activity_user,model_activity_event,group_activity_user,1,0,0,0
access_activity_manager,access_activity_manager,model_activity_event,group_activity_manager,1,1,1,1