当前位置: 首页 > news >正文

如何在Odoo 18中创建记录规则Rule

如何在Odoo 18中创建记录规则Rule

记录规则是管理访问控制的关键,它能让你依据用户角色,定义谁可以在系统内查看、创建或修改特定记录。例如,公司中的普通员工只能查看或修改与与自己直接相关的数据,而经理则有权限访问和编辑所有记录。这种访问控制级别是通过记录规则实现的。
记录规则提供了四种访问模式:CREATE(创建)、READ(读取)、WRITE(写入)和DELETE(删除)。
·CREATE(创建):授予添加新记录的权限,
·READ(读取):允许用户查看记录,
·WRITE(写入):允许修改记录,
·DELETE(删除):允许删除记录。

通过在记录规则中指定这些访问模式,我们可以控制用户对模型中记录的操作。

以下是创建记录规则的示例:

<?xml version="1.0" encoding="UTF-8"?>
<odoo noupdate="1">
   <record id="custom_record_rule" model="ir.rule">
       <field name="name">用户只能查看自己的记录</field>
       <field ref="sale.model_sale_order" name="model_id"/>
       <field name="domain_force">[('create_uid', '=', user.id)]</field>
       <field name="groups" eval="[(4, ref('base.group_user'))]"/>
       <field name="perm_read" eval="True"/>
       <field name="perm_write" eval="False"/>
       <field name="perm_create" eval="False"/>
       <field name="perm_unlink" eval="False"/>
       <field name="active" eval="False"/>
</record>
</odoo>

在这个示例中,我们定义了一个 ID 为custom_record_rule的记录规则。name字段给出了该规则的可读描述,model_id字段则指定了规则所应用的特定模型。此处,规则应用于sale_order模型。
domain_force字段定义了记录规则的条件。将域设置为[(‘create_uid’, ‘=’, user.id)],这样就能确保用户只能访问自己创建的记录。
groups字段决定了哪些用户组有权使用该记录规则。在此示例中,base.group_user组中的用户被授予访问权限。perm_read、perm_write、perm_create和perm_unlink字段定义了对记录允许的操作。在这里,用户只能读取记录,无法创建、修改或删除记录。最后,active字段表示该规则是否启用,若设置为False,则该规则不会生效。
noupdate="1"是一个用于模型字段的属性,用于指示在模块更新期间不更新该字段。noupdate="1"的作用是防止在模块更新时对该字段进行更改。
定义好记录规则后,我们可以将此文件放入模块的security文件夹中,并在__manifest__.py (清单文件)中引用该文件。
在这里插入图片描述

创建的规则可以在 “设置”→“技术”→“记录规则” 中查看。

在这里插入图片描述

然后,我们就能在这个树形视图中看到自己创建的记录规则。
在这里插入图片描述

注意:如果升级模块后未找到自己创建的记录规则,可以在归档的记录规则中查找。
在这里插入图片描述

此外,我们也可以直接在此处点击 “新建” 按钮来创建记录规则。
在这里插入图片描述

总结

Odoo中的记录规则提供了一种有效的机制,通过控制用户在系统中可以查看、编辑或删除的内容来管理数据访问。通过基于角色和条件设置规则,企业可以确保敏感信息得到保护,同时为特定用户提供适当的访问权限。

相关文章:

  • Deepseek官网接口文档
  • 【Python项目】文件销毁工具文档
  • 用户管理中心---前端页面设计测试登录功能
  • 服务器装机可用的基本操作
  • LSTM细胞状态门控设计详解:数学原理、代码实现与工业级优化方案
  • 超全Deepseek资料包,deepseek下载安装部署提示词及本地部署指南介绍
  • 《机器学习数学基础》补充资料:求解线性方程组的克拉默法则
  • JAVA EE初阶 - 预备知识(三)
  • 用自定义注解实现Excel数据导入中的枚举值校验
  • 第25周JavaSpringboot实战-电商项目 2.数据库准备和项目初始化
  • Dify本地部署过程问题
  • openGauss 6.0.0 RC1数据库日常运维
  • AllData数据中台核心菜单十三:数据湖平台
  • 【大模型】硅基流动对接DeepSeek使用详解
  • Jenkins+maven+gitlab+shell 实现项目自动化部署
  • 聚铭网络入围2025年度江苏省政府采购信息安全设备协议供货名单
  • 汽车通信未来新趋势:Eclipse uProtocol
  • 如何使用DeepSeek + PlantUML/Mermaid 生成专业图表
  • mysql查询判断函数,类似decode
  • SQL 注入攻击详解[基础篇]:Web 应用程序安全漏洞与防御策略
  • 19个剧团15台演出,上海民营院团尝试文旅融合新探索
  • 2025中国品牌日上海践行活动启动,将建设品牌生态交互平台
  • 71岁导演詹姆斯・弗雷病逝,曾执导《纸牌屋》、麦当娜MV
  • 俄罗斯今日将举行“胜利日”阅兵,有何看点?
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度
  • 呼和浩特65户业主被一房两卖,十年诉讼却难胜