Odoo14 groups && rule
# Odoo14 groups && rule # admin账户以及权限的来源:
# admin创建代码在:odoo/odoo/addons/base/data/res_users_data.xml中
<data noupdate="1">
<!-- user 1 is the technical admin user -->
<record model="res.users" id="base.user_root">
<field name="partner_id" ref="base.partner_root"/>
<field name="company_id" ref="main_company"/>
<field name="company_ids" eval="[(4, ref('main_company'))]"/>
<field name="email">root@example.com</field>
<field name="signature"><![CDATA[<span>-- <br/>
System</span>]]></field>
</record> <!-- user 2 is the human admin user -->
<record id="user_admin" model="res.users">
<field name="login">admin</field>
<field name="password">admin</field>
<field name="partner_id" ref="base.partner_admin"/>
<field name="company_id" ref="main_company"/>
<field name="company_ids" eval="[(4, ref('main_company'))]"/>
# 注意这里:groups_id字段会关联的就是权限组,这里初始化的时候会将权限组清空一遍
<field name="groups_id" eval="[(6,0,[])]"/>
<field name="image_1920" type="base64" file="base/static/img/avatar_grey.png"/>
<field name="signature"><![CDATA[<span>-- <br/>
Administrator</span>]]></field>
</record>
</data>
# noupdate="1"
# 只有在安装的时候会执行data中的代码
# 如果noupdate="0"或者没设置的话,安装升级的时候都会执行data中的代码
# 另一种情况是-i modelname的时候不管noupdate设置的啥都会执行data代码 # 当我们在.py的model中增加字段的时候,我们经常需要./odoo-bin -c odoo.cfg -i base来初始化字段,否则会报错
# 这时候时候携带的 -i base参数,会导致data中的代码重新执行一遍初始化
# 因为groups_id字段值被清空了,所以导致给admin设置的权限被初始化了
# 如何解决这个问题:那就是不加-i # 权限组(res.groups)的作用:
# 1.限制用户models的增删改查(通过.csv来编写)
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_login_image,access_login_image,model_login_image,,1,1,1,1
# 2.控制按钮的显示隐藏
<button name="open" string="Join Video Meeting" type="object" class="oe_highlight" groups='base.group_no_one'/>
# 3.控制menu菜单的显示隐藏
<menuitem action='payment_token_action' id='payment_token_menu' parent='account.root_payment_menu' groups='base.group_no_one'/>
# 4.控制fields的显示隐藏
invoice_amount = fields.Boolean(groups='account.group_account_invoice,account.group_account_readonly')
# 权限组如何声明:
<record id="group_ship_support_contact_us_menu" model="res.groups" >
<field name="name">Contact Us</field>
# category_id的值来自__manifast__.py的category值。"base.module_category_"是前缀加上category的值(需要将非字母数字下划线的值替换成下划线)
<field name="category_id" ref="base.module_category_ship_support"/>
# users哪些用户默认拥有这些权限
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
# implied_ids继承其他组。这样其他组拥有的权限都会自带过来
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record> # 过滤域(ir.rule)的作用是:用户访问models的时候强制加上domain过滤条件。过滤域是附加在权限组中的
<record id="account_move_line_rule_group_readonly" model="ir.rule">
<field name="name">Readonly Move Line</field>
# model_id:模块标识符,"model_"前缀+模块名(点替换成下划线)
<field name="model_id" ref="model_account_move_line"/>
# domain_force:过滤domain
<field name="domain_force">[(1, '=', 1)]</field>
# groups:该过滤与作用于哪些权限组
<field name="groups" eval="[(4, ref('account.group_account_readonly'))]"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
Odoo14 groups && rule的更多相关文章
- Odoo14 ir.rule 中的domain查询语句
# ir.rule 中的domain查询语句 # 当你的字段是many2one.many2many.one2many的时候domain都会强制加上过滤域 # tree显示的时候也会过滤 # m.mod ...
- 【odoo14】【开发侧】权限配置
欢迎转载,但需标注出处,谢谢! 说明: 本文面向开发人员,普通用户可参考[odoo14][用户侧]权限配置.文章结构与用户侧一致. 目录 一. odoo中的对象 二. 权限控制 2.1 实现原理 2. ...
- 关于Freelists和Freelist Groups的研究【转】
一. 什么是freelists 本文在于探讨Freelists和Freelist Groups的作用,存取机制,争用诊断和优化方法,同时通过理论和测试来推翻一些存在了很久的错误观点.本文的 ...
- [SQL in Azure] Tutorial: AlwaysOn Availability Groups in Azure (GUI)
http://msdn.microsoft.com/en-us/library/azure/dn249504.aspx Tutorial: AlwaysOn Availability Groups i ...
- sonar rule
bug类型: 1.".equals()" should not be used to test the values of "Atomic" classes. ...
- Prometheus学习系列(五)之Prometheus 规则(rule)、模板配置说明
前言 本文来自Prometheus官网手册1.2.3.4和 Prometheus简介1.2.3.4 记录规则 一.配置规则 Prometheus支持两种类型的规则,这些规则可以定期配置,然后定期评估: ...
- 记录规则(recording rules)与告警规则(alerting rule)
记录规则(recording rules) 配置规则 Prometheus支持两种类型的规则,可以对其进行配置,然后定期进行评估:记录规则和警报规则.要在Prometheus中包含规则,请创建一个包含 ...
- 【odoo14】第十五章、网站客户端开发
odoo的web客户端.后台是员工经常使用的地方.在第九章中,我们了解了如何使用后台提供的各种可能性.本章,我们将了解如何扩展这种可能性.其中web模块包含了我们在使用odoo中的各种交互行为. 本章 ...
- 【odoo14】第十四章、CMS网站开发
第十四章.CMS网站开发** Odoo有一个功能齐全的内容管理系统(CMS).通过拖放功能,你的最终用户可以在几分钟内设计一个页面,但是在Odoo CMS中开发一个新功能或构建块就不是那么简单了.在本 ...
随机推荐
- docker+nginx+redis部署前后端分离项目!!!
介绍本文用的经典的前后端分离开源项目.项目的拉取这些在另一篇博客!!! 其中所需要的前后端打包本篇就不做操作了!!不明白的去看另一篇博客!!! 地址:http://www.cnblogs.com/ps ...
- netty系列之:netty中常用的对象编码解码器
目录 简介 什么是序列化 重构序列化对象 序列化不是加密 使用真正的加密 使用代理 Serializable和Externalizable的区别 netty中对象的传输 ObjectEncoder O ...
- Spring Security之简单举例
核心功能 Spring Security提供了三个核心的功能: 认证(你是谁) 授权(你能干什么) 攻击防护(防止伪造身份) 一个简单例子 默认情况 在前面的开发中,都是将spring securit ...
- 医会宝APP登录体验
帮一个学医生的朋友找相关资料,无意中下载了医会宝APP,登录的时候发现登录方面存在可以优化的地方还挺多,然后随手把登录这部分体验记录下,仅代表个人体验,供新手参考,非权威,交互专家跳过. 一.体验环境 ...
- 场景实践:基于 IntelliJ IDEA 插件部署微服务应用
体验简介 阿里云云起实验室提供相关实验资源,点击前往 本场景指导您把微服务应用部署到 SAE 平台: 登陆 SAE 控制台,基于 jar 包创建应用 基于 IntelliJ IDEA 插件更新 SAE ...
- 《Effective C++》阅读总结(二):类的构造、析构和赋值
今天是周六早上,但很不幸待会儿还是要去公司,本月kpi还剩一些工作要做,这个月计划的Effective C++学习,也基本完成了,最后一章节模板相关那部分还看不太懂,就大概过了一遍.现在是收尾总结阶段 ...
- LSP原则是什么
如果这篇文章能够帮到您,请给我一个免费的赞,谢谢QWQ! LSP原则并不难,但是地方就会把它说的很啰嗦,如果你对LSP还是感到疑惑,请往下看看. 先上代码: public class Bird { p ...
- iNeuOS工业互联网操作系统,在线报表(Excel)开发工具
目 录 1. 概述... 2 2. 视频介绍... 2 3. 应用过程... 2 1. 概述 iNeuOS工业互联网操作系统在线报表(Excel)工具的开 ...
- 001 手把手用Git,Git从入门到上传本地项目到Github,看这篇就够了
安装git 下载Git 下载好后,一路next即可 安装好后,打开Git bash,进行配置 首先配置自己的身份 git config --global user.name "Name&qu ...
- redis相关知识点
redis 的相关知识点 启动 启动代码 redis-cli -a 密码 通用命令 expire: 设置有效期 expire name 10 key key * 相关数据类型 String set:添 ...