odoo细分权限(根据业务需求)

odoo原生权限编写方式:

根据用户组分配权限

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sale_order,sale.order,model_sale_order,sales_team.group_sale_salesman,1,1,
1,0
access_sale_order_manager,sale.order.manager,model_sale_order,sales_team.group_sa
le_manager,1,1,1,1
<record id="group_sale_salesman" model="res.groups">
<field name="name">User: Own Documents Only</field><field name="category_id" ref="base.module_category_sales_sales"/><field name="implied_ids" eval="[(4, ref('base.group_user'))]"/><field name="comment">the user will have access to his own data in the sales
application.</field>
</record>
<record id="group_sale_salesman_all_leads" model="res.groups"><field name="name">User: All Documents</field><field name="category_id" ref="base.module_category_sales_sales"/><field name="implied_ids" eval="[(4, ref('group_sale_salesman'))]"/><field name="comment">the user will have access to all records of everyone in
the sales application.</field>
</record>
<record id="group_sale_manager" model="res.groups"><field name="name">Administrator</field><field name="comment">the user will have an access to the sales configuration
as well as statistic reports.</field><field name="category_id" ref="base.module_category_sales_sales"/><field name="implied_ids" eval="[(4,
ref('group_sale_salesman_all_leads'))]"/><field name="users" eval="[(4, ref('base.user_root')),
(4,ref('base.user_admin'))]"/>
</record>

在menu、button等的groups中设置权限

<menuitem id="menu_sale_quotations" action="action_quotations_with_onboarding"groups="sales_team.group_sale_salesman" sequence="10"/>

细分权限编写方式:

官方的权限分得不是很细,按照业务的需求,我们可以把权限细分。

比如按照增删改查去划分权限,甚至是页面上的按钮、page页:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_121,mes.production.line.change,model_mes_production_line_change,mes_produc
tion_line_change_read,1,0,0,0
access_122,mes.production.line.change,model_mes_production_line_change,mes_produc
tion_line_change_write,0,1,0,0
access_123,mes.production.line.change,model_mes_production_line_change,mes_produc
tion_line_change_create,0,0,1,0
access_124,mes.production.line.change,model_mes_production_line_change,mes_produc
tion_line_change_unlink,0,0,0,1
<!--增删改查-->
<record model="res.groups" id="mes_production_line_change_read"><field name="name">Production Line Change Read</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="mes_production_line_change_write"><field name="name">Production Line Change Write</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="mes_production_line_change_create"><field name="name">Production Line Change Create</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="mes_production_line_change_unlink"><field name="name">Production Line Change Unlink</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>

<!--按钮-->
<record model="res.groups" id="mes_production_line_btn_action_submit"><field name="name">Production Line Change btn Submit</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
这样,我们就可以单独分配增删改查等权限
</record>
...
<record model="res.groups" id="mes_production_line_btn_action_cancel"><field name="name">Production Line Change btn Cancel</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>
<button name="action_submit" string="Submit Application" states="draft"class="oe_highlight" confirm="Are you sure you want to submit?"
type="object"groups="mes_base.mes_production_line_btn_action_submit" />
<!--page-->
<record model="res.groups" id="mes_production_ready_page_order_dispatch"><field name="name">Production Ready Page Work Order Dispatch</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>
...
<record model="res.groups" id="mes_production_ready_page_worksite_record"><field name="name">Production Ready Page Worksite Record</field><field name="category_id" ref="mes_base.module_category_HHY_MES"/><field name="users" eval="[(4, ref('base.user_root')), (4,
ref('base.user_admin'))]"/>
</record>
<page name="order_dispatch_ids" string="Work Order Dispatch"groups="mes_base.mes_production_ready_page_order_dispatch">
</page>

这样,我们就可以单独分配增删改查等权限

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

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

相关文章

kaggle提交csv文件

使用colab完成实验后 将要提交的csv文件拖到kaggle网站自己加入的competition就行 如果kaggle网站无法注册&#xff0c;往往是人机验证问题&#xff1a; kaggle网站验证

邮票孔是什么?和V割有什么区别?

邮票孔&#xff0c;也称为安装孔或通孔&#xff0c;是 PCB 中的圆形或非圆形开口&#xff0c;旨在允许将组件或 PCB 本身连接到支撑结构上。这些孔通常从顶面到底部钻穿或冲穿 PCB 层&#xff0c;形成连续的通道。冲压孔有各种尺寸和形状&#xff0c; 取决于 PCB 及其所容纳组件…

餐饮渠道年销4.2亿盒,光明look 30亿的极致大单品是如何策划的?

餐饮渠道年销4.2亿盒&#xff0c;光明look 30亿的极致大单品是如何策划的&#xff1f; 红酒代理业务下滑&#xff0c;从餐饮渠道主攻奶品类 雨帆食品集团&#xff0c;自2002年起是湖北地区红酒代理商&#xff0c;同时兼任光明乳业湖北荆州代理商。然而&#xff0c;到了2011年&a…

python--实验 9 类和对象

知识点 面向对象编程思想 面向对象编程是一种编程范式&#xff0c;它使用“对象”来设计软件&#xff0c;这些对象可以包含数据和代码&#xff0c;即属性和方法。 面向对象的程序设计的核心是对象,世间存在的万物皆为对象&#xff08;上帝式思维&#xff09; 面向对象&#xf…

TomCat服务器安装和配置教程

1.TomCat下载路径 TomCat官方网站&#xff1a;http://tomcat.apache.org 前往该网站下载安装tomcat&#xff0c;tar.gz文件是Linux操作系统的安装版本&#xff0c;zip文件是 windows操纵系统的压缩版本 打开后是如下网站&#xff0c;请下载匹配的操作系统的文件并且选择合适的…

2023 年 GitHub 上最受欢迎的编程语言

JavaScript 仍然是使用最多的编程语言&#xff0c;在 Web 开发中占据重要地位。 被广泛用于 Web 应用程序开发&#xff0c;框架如 React 和 Angular 促进了单页应用程序的开发。 Node.js 的出现使其在后端编程中同样重要。 Python 由于其简单性和广泛的库&#xff0c;Pyth…

自注意力简介

在注意力机制中&#xff0c;每个查询都会关注所有的键值对并生成一个注意力输出。如果查询q&#xff0c;键k和值v都来自于同一组输入&#xff0c;那么这个注意力就被称为是自注意力&#xff08;self-attention&#xff09;。自注意力这部分理论&#xff0c;我觉得台大李宏毅老师…

新兴商业模式如何破局?市场策划专家的实战指南

在这个融合了传统市场、互联网和信息技术的大潮中&#xff0c;想要在市场营销策划上玩得转&#xff0c;咱们得有超凡的全局思维和跨界的协作精神。 下面&#xff0c;我就来和大家聊聊如何在这样一个复杂环境下搞定市场营销策划&#xff0c;让你在竞争激烈的市场中脱颖而出。 …

Nodejs 第八十二章(Nacos动态配置)

什么是动态配置&#xff1f; 在Nacos中&#xff0c;动态配置是指可以在运行时动态修改应用程序的配置信息&#xff0c;而不需要重新启动或重新部署应用程序。通过Nacos的动态配置功能&#xff0c;开发人员可以将应用程序的配置信息存储在Nacos服务器中&#xff0c;并在需要时进…

PTK是如何加密WLAN单播数据帧的?

1. References WLAN 4-Way Handshake如何生成PTK&#xff1f;-CSDN博客 2. 概述 在Wi-Fi网络中&#xff0c;单播、组播和广播帧的加密算法是由AP决定的。其中单播帧的加密使用PTK密钥&#xff0c;其PTK的密钥结构如下图所示&#xff1a; PTK的组成如上图所示&#xff0c;由K…

做一个专业的声音分析系统,需要对声音那些评判标准进行计算

为了构建一个专业的声音分析系统&#xff0c;需要对以下评判标准进行计算。每个标准需要相应的算法和技术指标来实现。下面是一些关键的评判标准和如何计算这些标准的具体方法&#xff1a; 1. 音质 清晰度 信噪比&#xff08;SNR&#xff09;&#xff1a;计算音频信号中的信…

win11下部署Jenkins,build c#项目

一个c#的项目&#xff0c;由于项目经理总要新版本测试&#xff0c;以前每次都是手动出包&#xff0c;现在改成jenkins自动生成&#xff0c;节省时间。 一、下载Jenkins&#xff0c; 可以通过清华镜像下载Index of /jenkins/windows-stable/ | 清华大学开源软件镜像站 | Tsingh…

前端使用pinia中存入的值

导入pinia,创建pinia实例 使用pinia中的值

mysql8多值索引

MySQL8新出了一个多值索引&#xff0c;我还没体验过呢&#xff0c;今天试一试。 建表 我先建个表试一试多值索引的效果。我粗略地看了下多值索引的介绍&#xff0c;发现是只适用于数组类型的。所以我建一个含有数组字段的表试一试。语法还是挺麻烦的&#xff1a; create tabl…

2.电容(常见元器件及电路基础知识)

一.电容种类 1.固态电容 这种一般价格贵一些&#xff0c;ESR,ESL比较低,之前项目400W电源用的就是这个&#xff0c;温升能够很好的控制 2.铝电解电容 这种一般很便宜&#xff0c;ESR,ESL相对大一些&#xff0c;一般发热量比较大&#xff0c;烫手。 这种一般比上一个贵一点&am…

开源公司网站源码系统,降低成本,提升效率 附带完整的安装代码包以及搭建教程

系统概述 开源公司网站源码系统是一个基于开源技术的网站建设解决方案。它提供了完整的网站框架和功能模块&#xff0c;允许企业快速搭建起一个功能齐全、设计美观的企业网站。该系统不仅降低了网站开发的成本&#xff0c;还大大提高了建设效率&#xff0c;使企业能够更快地将…

泛微开发修炼之旅--37通过js实现监听下拉框,并触发后端接口,改变其他控件内容的实现方法与源码(含pc端和移动端实现)

文章链接&#xff1a;37通过js实现监听下拉框&#xff0c;并触发后端接口&#xff0c;改变其他控件内容的实现方法与源码&#xff08;含pc端和移动端实现&#xff09;

游戏AI的创造思路-技术基础-决策树(2)

上一篇写了决策树的基础概念和一些简单例子&#xff0c;本篇将着重在实际案例上进行说明 目录 8. 决策树应用的实际例子 8.1. 方法和过程 8.1.1. 定义行为 8.1.2. 确定属性 8.1.3. 构建决策树 8.1.4. 实施行为 8.1.5. 实时更新 8.2. Python代码 8. 决策树应用的实际例子…

滑动窗口,最长子序列最好的选择 -> O(N)

最近在学校上短学期课程&#xff0c;做程序设计题&#xff0c;一下子回忆起了大一学数据结构与算法的日子&#xff01; 这十天我会记录一些做题的心得&#xff0c;今天带来的是对于最长子序列长度题型的解题框架&#xff1a;滑动窗口 本质就是双指针算法&#xff1a; 通过le…

模拟生成高斯随机数序列

模拟和生成高斯随机数序列&#xff08;服从标准正态分布的随机变量&#xff09; Box-Muller 法 & Marsaglia 极坐标法 Box-Muller&#xff1a;使两个独立的均匀分布生成一个高斯分布。 Box-Muller方法的基本思想是利用两个独立的均匀分布随机变量的关系来生成高斯分布的…