如何在 Odoo 18 中创建安全组及管理访问权限

如何在 Odoo 18 中创建安全组及管理访问权限

在任何企业管理软件中,确保用户对数据和功能拥有适当的访问权限,对维护安全性和运营效率至关重大。Odoo 18 通过** 安全组(Security Groups)和访问权限(Access Rights)** 提供了一套强劲的权限控制机制,允许管理员定义用户对不同模块数据的查看、修改或删除权限。合理管理用户访问权限可保障数据完整性、机密性,并促进系统内的高效协作。

本文将详细介绍在 Odoo 18 中创建自定义安全组、分配访问权限及有效管理用户权限的流程。

一、准备工作:在自定义模块中创建安全配置文件

1、在自定义模块中创建 security 文件夹
在您的自定义模块内创建一个名为 security 的文件夹,用于存放安全组和访问权限的定义文件。

如何在 Odoo 18 中创建安全组及管理访问权限

二、定义模型访问权限:ir.model.access.csv文件

定义模型访问权限 (ir.model.access.csv)
在 security 文件夹下创建 ir.model.access.csv 文件,定义模型的访问权限。

如何在 Odoo 18 中创建安全组及管理访问权限

文件中的每一行对应 ir.model.access 模型的一条记录,各列含义如下:

·id: 记录的唯一标识符(如 access_模型名)。

·name: 访问规则的名称(如 access.class.record)。

·model_id:id: 模型名称,格式为 model_<模型名>(如 model_class_record)。

·group_id:id: 关联的安全组(留空表明所有用户均可访问)。

·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_class_record,access.class.record,model_class_record,,1,1,1,1

说明:

·group_id留空,意味着所有用户(包括管理员和普通用户)均可访问class.record模型。

·权限字段均为1,允许读取、写入、创建和删除操作。

应用访问规则

将ir.model.access.csv文件添加到模块的__manifest__.py文件的data列表中:

data : [ security/ir.model.access.csv ,# 其他数据文件],

升级模块或重启 Odoo 使配置生效。

通过界面查看访问权限
1、路径:

定义完成后,访问权限会自动同步。您可以在 设置 > 技术 > 访问权限 中查看已创建的规则。

如何在 Odoo 18 中创建安全组及管理访问权限

  1. 操作:
    在此界面可搜索模型名称(如 class.record),查看已定义的访问规则及其关联的安全组和权限。

如何在 Odoo 18 中创建安全组及管理访问权限

由于此访问规则未添加任何用户组,因此每个用户(包括管理员和普通用户)都可以访问此模型。下图显示,管理员和普通用户均能看到 “class.record”(班级记录) 模型。

如何在 Odoo 18 中创建安全组及管理访问权限

如何在 Odoo 18 中创建安全组及管理访问权限

三、创建安全组:通过 XML 定义

通过 XML 文件定义安全组,明确限制模型访问范围。

步骤 1:定义安全组 XML
在 security 文件夹下创建 XML 文件(如 security_groups.xml),定义安全组:

<?xml version=”1.0″ encoding=”UTF-8″?>

<odoo>

<data>

<!– 创建安全组:学生管理员 –>

<record model=”res.groups” id=”student_group_manager”>

<field name=”name”>学生管理员</field>

<!– 指定组分类为“管理” –>

<field name=”category_id” ref=”base.module_category_administration”/>

</record>

</data>

</odoo>

步骤2:更新模块清单文件 (__manifest__.py)中引用 XML 文件
在 __manifest__.py 的 data 列表中添加 XML 文件路径:

{

data : [

security/security_groups.xml ,

security/ir.model.access.csv ,

],

}

步骤 3:为用户分配安全组

·将用户添加到安全组

进入 设置 > 用户与公司 > 群组,搜索创建的安全组(如 “学生管理员”)。

如何在 Odoo 18 中创建安全组及管理访问权限

在组的表单视图的 用户 标签页下,选择需要加入该组的用户。

如何在 Odoo 18 中创建安全组及管理访问权限

·更新访问规则以限制权限
修改 ir.model.access.csv 文件,将 group_id:id 设置为安全组的 ID(如 student_group_manager):

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink

access_class_record,access.class.record,model_class_record,student_group_manager,1,1,1,1

此时,只有属于该安全组的用户才能访问模型 class.record。

验证权限效果

·管理员用户(属于该组):可查看和操作模型。

如何在 Odoo 18 中创建安全组及管理访问权限

·普通用户(不属于该组):无法看到模型。

如何在 Odoo 18 中创建安全组及管理访问权限

四、总结

在 Odoo 18 中,通过安全组和访问权限管理可精准控制用户对数据和功能的访问,是保障系统安全和业务流程合规的核心机制。通过定义 ir.model.access.csv 规则、创建安全组并关联用户,企业可灵活适配组织架构和权限策略,确保数据安全的同时提升协作效率。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容