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

odoo字段访问控制

在 Odoo 中,可以通过几种方式实现字段的访问控制,包括通过模型安全规则、记录规则和字段属性来限制字段的访问。

1. 使用模型安全规则

模型安全规则(也称为访问控制列表,ACLs)允许你定义哪些用户组可以对哪些模型进行创建、读取、更新和删除(CRUD)操作。虽然这不是直接对字段进行控制,但它为控制字段访问提供了基础。

示例:
# 添加安全规则XML文件
<record id="model_your_model_access" model="ir.model.access"><field name="name">your.model.access</field><field name="model_id" ref="model_your_model"/><field name="group_id" ref="your_module.group_your_group"/><field name="perm_read">1</field><field name="perm_create">0</field><field name="perm_write">1</field><field name="perm_unlink">0</field>
</record>
  • id: 规则的唯一标识符。
  • model: 指定规则适用于哪个模型。
  • group_id: 指定哪个用户组受此规则影响。
  • perm_read: 是否允许读取操作。
  • perm_create: 是否允许创建操作。
  • perm_write: 是否允许写入操作。
  • perm_unlink: 是否允许删除操作。

2. 使用记录规则

记录规则允许更细致地控制哪些记录可被特定用户组的成员访问。通过结合使用模型安全规则和记录规则,可以实现对特定字段的间接访问控制。

示例:
<record id="your_model_rule" model="ir.rule"><field name="name">Your Model Rule</field><field name="model_id" ref="model_your_model"/><field name="domain_force">[('field_name', '=', 'specific_value')]</field><field name="groups" eval="[(4, ref('your_module.group_your_group'))]"/>
</record>
  • domain_force: 定义了规则的适用条件,即只有当记录满足这个域条件时,该规则才适用。
  • groups: 指定哪个用户组受此规则影响。

3. 使用字段属性进行访问控制

通过在模型定义中直接使用字段属性,可以实现对字段的直接访问控制。常用的字段属性包括readonlygroups

示例:
from odoo import models, fieldsclass YourModel(models.Model):_name = 'your.model'_description = 'Your Model Description'name = fields.Char(string='Name')sensitive_info = fields.Char(string='Sensitive Info', groups='your_module.group_your_group', readonly=True)
  • groups: 指定只有属于特定用户组的用户才能访问该字段。在这个例子中,只有属于your_module.group_your_group的用户才能看到sensitive_info字段。
  • readonly: 指定该字段是否为只读。在这个例子中,即使用户可以看到sensitive_info字段,他们也无法修改它。
http://www.lryc.cn/news/323284.html

相关文章:

  • mysql的基本知识点-操作数据库表
  • 基于Springboot的疫情物资管理系统(有报告)。Javaee项目,springboot项目。
  • 【postgresql 基础入门】表的约束(一)主键与外键,数据的实体完整性与参照完整性,外键引用数据被修改时的动作触发
  • centos 7 添加启动脚本
  • java入门基础掌握知识
  • Harbor高可用(nginx和keepalived)
  • [数据集][目标检测]牛羊检测数据集VOC+YOLO格式3393张2类别
  • 命令提示符——CMD基础操作介绍
  • vue2 自定义 v-model (model选项的使用)
  • 智慧城市中的智慧生活:便捷、舒适与高效
  • 时代教育期刊投稿发表
  • 每日OJ题_子数组子串dp⑥_力扣978. 最长湍流子数组
  • 蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和
  • Android 静默安装二(无障碍服务版)
  • 蓝桥杯 EDA 组 2023模拟+真题原理图解析
  • 聊聊功率器件(氮化镓,碳化硅)
  • 计算地球圆盘负荷产生的位移
  • Harbor介绍
  • 解决jenkins运行磁盘满的问题
  • 使用echart绘制拓扑图,树类型,自定义tooltip和label样式,可收缩
  • 常用的6个的ChatGPT网站,国内可用!
  • Linux课程____Samba文件共享服务
  • Java学习day1
  • ByteTrack多目标跟踪——YOLOX详解
  • Linux 常见驱动框架
  • Oracle函数6—递归查询(start with...connect by、sys_connect_by_path、level)
  • 人机交互三原则,网络7层和对应的设备、公钥私钥
  • vue2源码学习01配置rollup打包环境
  • DP:斐波那契数列模型
  • JavaScript高级(十四)----prmise