Odoo 18 安全组与访问权限管理指南

Odoo 18 安全组与访问权限管理指南

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

  1. 创建 security 文件夹
    在自定义模块内创建名为 security 的文件夹,用于存放安全组和访问权限的定义文件。
    在这里插入图片描述

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

1. 创建访问权限文件

security 文件夹下创建 ir.model.access.csv 文件,定义模型的访问权限。 在这里插入图片描述

文件格式:

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

2. 字段说明

字段描述
id记录的唯一标识符(如 access_模型名
name访问规则的名称(如 access.class.record
model_id:id模型名称,格式为 model_<模型名>(如 model_class_record
group_id:id关联的安全组(留空表示所有用户均可访问)
perm_read读取权限(1=允许,0=拒绝)
perm_write写入权限(1=允许,0=拒绝)
perm_create创建权限(1=允许,0=拒绝)
perm_unlink删除权限(1=允许,0=拒绝)

3. 示例:无安全组限制的访问规则

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:允许读取、写入、创建和删除操作。

4. 应用访问规则

  1. 在模块的 __manifest__.py 文件的 data 列表中添加 CSV 文件路径:
    'data': ['security/ir.model.access.csv',# 其他数据文件
    ],
    
  2. 升级模块或重启 Odoo 使配置生效。

5. 通过界面查看访问权限

  • 路径设置 > 技术 > 访问权限
    在这里插入图片描述
  • 操作:搜索模型名称(如 class.record),查看已定义的访问规则及其关联的安全组和权限。

在这里插入图片描述

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

1. 定义安全组 XML

security 文件夹下创建 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__.pydata 列表中添加 XML 文件路径:

{'data': ['security/security_groups.xml','security/ir.model.access.csv',],
}

3. 为用户分配安全组

  1. 添加用户到安全组
    进入 设置 > 用户与公司 > 群组,搜索创建的安全组(如 “学生管理员”),在这里插入图片描述
    在组的表单视图的 用户 标签页下选择需要加入的用户。在这里插入图片描述

  2. 更新访问规则以限制权限
    修改 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 模型。

4. 验证权限效果

  • 管理员用户(属于该组):可查看和操作模型。在这里插入图片描述

  • 普通用户(不属于该组):无法看到模型。
    在这里插入图片描述

四、总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用lldb查看Rust不同类型的结构

目录 前言 正文 标量类型 复合类型——元组 复合类型——数组 函数 &str struct 可变数组vec Iter String Box Rc Arc RefCell Mutex RwLock Channel 总结 前言 笔者发现这个lldb挺好玩的&#xff0c;可以查看不同类型的结构&#xff0c;虽然这好像是C的东…

uniapp使用ui.request 请求流式输出

正文&#xff1a; 在现代Web开发中&#xff0c;实时数据流和长时间运行的请求变得越来越常见&#xff0c;尤其是在处理大量数据或进行实时通信时。在这种情况下&#xff0c;uniapp 提供的 ui.request 请求方法可以帮助我们轻松实现流式输出请求。本文将介绍如何使用 uni.reques…

如何恢复被勒索软件加密的服务器文件(解密与备份策略)

针对勒索软件加密文件的恢复和解密策略&#xff0c;结合当前数据安全最佳实践&#xff0c;整理应对指南如下&#xff1a; 一、文件解密与修复方法 立即隔离设备‌ 断开网络连接并禁用共享功能&#xff0c;防止病毒横向传播 通过文件后缀异常&#xff08;如.locked、.wxx&…

JS,ES,TS三者什么区别

Java Script(JS)、ECMAScript(ES)、TypeScript(TS) 的核心区别与关联的详细解析,结合技术背景、设计目标及应用场景展开说明: 一、核心定义与关系 JavaScript(JS) 定义:一种动态类型、基于原型的脚本语言,由 Netscape 公司于 1995 年首次开发,用于网页交互功能。角…

【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景

目录 1 什么是MapReduce&#xff1f; 2 MapReduce的核心特点 2.1 分布式处理 2.2 容错机制 3 MapReduce的完整工作流程 4 MapReduce的优缺点分析 4.1 优势 4.2 局限性 5 MapReduce典型应用场景 5.1 适用场景 5.2 不适用场景 6 MapReduce与其他技术的对比 7 总结 1…

【Redis】分布式锁的实现

目录 一、本地锁存在的问题 二、redis实现分布式锁原理 三、使用示例 四、锁误删问题 解决思路 获取锁和释放锁代码优化 五、锁释放的原子性问题 解决思路&#xff08;Lua脚本&#xff09; 使用流程 总结 大家好&#xff0c;我是千语。上期给大家讲了使用悲观锁来解决…

Unity3D对象池设计与实现详解

前言 在Unity3D中&#xff0c;对象池&#xff08;Object Pooling&#xff09;是一种优化技术&#xff0c;用于减少频繁实例化和销毁对象带来的性能开销。以下是对象池的详细设计和实现步骤&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点…

[Spring]-组件的生命周期

组件生命周期 认识组件的声明周期 实验1 通过Bean指定组件的生命周期 package com.guigu.spring.ioc.bean;Data public class User {private String username;private String password;private Car car;Autowiredpublic void setCar(Car car) {System.out.println("自动…

【golang】网络数据包捕获库 gopacket

详解 github.com/google/gopacket/pcap 包 github.com/google/gopacket/pcap 是 Go 语言中一个强大的网络数据包捕获库&#xff0c;它是 gopacket 项目的一部分&#xff0c;提供了对 libpcap&#xff08;Linux/Unix&#xff09;和 WinPcap&#xff08;Windows&#xff09;的 G…

RBTree的模拟实现

1&#xff1a;红黑树的概念 红⿊树是⼀棵⼆叉搜索树&#xff0c;他的每个结点增加⼀个存储位来表⽰结点的颜⾊&#xff0c;可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束&#xff0c;红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍&#xff0c;因…

React 第三十九节 React Router 中的 unstable_usePrompt Hook的详细用法及案例

React Router 中的 unstable_usePrompt 是一个用于在用户尝试离开当前页面时触发确认提示的自定义钩子&#xff0c;常用于防止用户误操作导致数据丢失&#xff08;例如未保存的表单&#xff09;。 一、unstable_usePrompt用途 防止意外离开页面&#xff1a;当用户在当前页面有…

OSI 7层模型

OSI 7层模型&#xff1a; 1、物理层&#xff08;光纤等把电脑连接起来的物理手段&#xff09; 2、数据链路层&#xff08;以太网&#xff0c;确认0和1电信号的分组方式&#xff0c;负责MAC地址&#xff0c;MAC地址用于在网络中唯一标示一个网卡&#xff0c;相当于网卡的身份证…

视频编解码学习十一之视频原始数据

一、视频未编码前的原始数据是怎样的&#xff1f; 视频在未编码前的原始数据被称为 原始视频数据&#xff08;Raw Video Data&#xff09;&#xff0c;主要是按照帧&#xff08;Frame&#xff09;来组织的图像序列。每一帧本质上就是一张图片&#xff0c;通常采用某种颜色格式…

Redis学习打卡-Day1-SpringDataRedis、有状态无状态

Redis的Java客户端 Jedis 以 Redis 命令作为方法名称&#xff0c;学习成本低&#xff0c;简单实用。Jedis 是线程不安全的&#xff0c;并且频繁的创建和销毁连接会有性能损耗&#xff0c;因此推荐使用 Jedis 连接池代替Jedis的直连方式。 lettuce Lettuce是基于Netty实现的&am…

告别静态配置!Spring Boo动态线程池实战指南:Nacos+Prometheus全链路监控

一、引言 1.1 动态线程池的必要性 传统线程池的参数&#xff08;如核心线程数、队列容量&#xff09;通常通过配置文件静态定义&#xff0c;无法根据业务负载动态调整。例如&#xff0c;在电商大促场景中&#xff0c;流量可能瞬间激增&#xff0c;静态线程池容易因配置不合理导…

Flask如何读取配置信息

目录 一、使用 app.config 读取配置 二、设置配置的几种方式 1. 直接设置 2. 从 Python 文件加载 3. 从环境变量加载 4. 从字典加载 5. 从 .env 文件加载&#xff08;推荐开发环境用&#xff09; 三、读取配置值 四、最佳实践建议 在 Flask 中读取配置信息有几种常见方…

【React中useCallback钩子详解】

useCallback 是 React 中的一个性能优化 Hook,用于缓存函数引用,避免在组件重新渲染时重复创建相同的函数,从而减少不必要的子组件渲染或副作用执行。以下是其核心要点: 1. 核心作用 函数记忆化:返回一个记忆化的回调函数,仅在依赖项变化时重新创建函数,否则复用之前的函…

【!!!!终极 Java 中间件实战课:从 0 到 1 构建亿级流量电商系统全链路解决方案!!!!保姆级教程---超细】

终极 Java 中间件实战课:电商系统架构实战教程 电商系统架构实战教程1. 系统架构设计1.1 系统模块划分1.2 技术选型2. 环境搭建2.1 开发环境准备2.2 基础设施部署3. 用户服务开发3.1 创建Maven项目3.2 创建用户服务模块3.3 配置文件3.4 实体类与数据库设计3.5 DAO层实现3.6 Se…

C#异步Task,await,async和Unity同步协程

标题 TaskawaitasyncUnity协程 Task Task是声明异步任务的必要关键字&#xff0c;也可以使用Task<>泛型来定义Task的返回值。 await await是用于等待一个Task结束&#xff0c;否则让出该线程控制权&#xff0c;让步给其他线程&#xff0c;直到该Task结束才往下运行。 …

【USRP】在linux下安装python API调用

UHD 源码安装 安装库 sudo apt-get install autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool \ g git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev \ libusb-dev python3-dev python3-mako …