1. # Odoo14 groups && rule
  2.  
  3. # admin账户以及权限的来源:
  4. # admin创建代码在:odoo/odoo/addons/base/data/res_users_data.xml中
  5. <data noupdate="1">
  6. <!-- user 1 is the technical admin user -->
  7. <record model="res.users" id="base.user_root">
  8. <field name="partner_id" ref="base.partner_root"/>
  9. <field name="company_id" ref="main_company"/>
  10. <field name="company_ids" eval="[(4, ref('main_company'))]"/>
  11. <field name="email">root@example.com</field>
  12. <field name="signature"><![CDATA[<span>-- <br/>
  13. System</span>]]></field>
  14. </record>
  15.  
  16. <!-- user 2 is the human admin user -->
  17. <record id="user_admin" model="res.users">
  18. <field name="login">admin</field>
  19. <field name="password">admin</field>
  20. <field name="partner_id" ref="base.partner_admin"/>
  21. <field name="company_id" ref="main_company"/>
  22. <field name="company_ids" eval="[(4, ref('main_company'))]"/>
  23. # 注意这里:groups_id字段会关联的就是权限组,这里初始化的时候会将权限组清空一遍
  24. <field name="groups_id" eval="[(6,0,[])]"/>
  25. <field name="image_1920" type="base64" file="base/static/img/avatar_grey.png"/>
  26. <field name="signature"><![CDATA[<span>-- <br/>
  27. Administrator</span>]]></field>
  28. </record>
  29. </data>
  30. # noupdate="1"
  31. # 只有在安装的时候会执行data中的代码
  32. # 如果noupdate="0"或者没设置的话,安装升级的时候都会执行data中的代码
  33. # 另一种情况是-i modelname的时候不管noupdate设置的啥都会执行data代码
  34.  
  35. # 当我们在.py的model中增加字段的时候,我们经常需要./odoo-bin -c odoo.cfg -i base来初始化字段,否则会报错
  36. # 这时候时候携带的 -i base参数,会导致data中的代码重新执行一遍初始化
  37. # 因为groups_id字段值被清空了,所以导致给admin设置的权限被初始化了
  38. # 如何解决这个问题:那就是不加-i
  39.  
  40. # 权限组(res.groups)的作用:
  41. # 1.限制用户models的增删改查(通过.csv来编写)
  42. id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
  43. access_login_image,access_login_image,model_login_image,,1,1,1,1
  44. # 2.控制按钮的显示隐藏
  45. <button name="open" string="Join Video Meeting" type="object" class="oe_highlight" groups='base.group_no_one'/>
  46. # 3.控制menu菜单的显示隐藏
  47. <menuitem action='payment_token_action' id='payment_token_menu' parent='account.root_payment_menu' groups='base.group_no_one'/>
  48. # 4.控制fields的显示隐藏
  49. invoice_amount = fields.Boolean(groups='account.group_account_invoice,account.group_account_readonly')
  50. # 权限组如何声明:
  51. <record id="group_ship_support_contact_us_menu" model="res.groups" >
  52. <field name="name">Contact Us</field>
  53. # category_id的值来自__manifast__.py的category值。"base.module_category_"是前缀加上category的值(需要将非字母数字下划线的值替换成下划线)
  54. <field name="category_id" ref="base.module_category_ship_support"/>
  55. # users哪些用户默认拥有这些权限
  56. <field name="users" eval="[(4, ref('base.user_admin'))]"/>
  57. # implied_ids继承其他组。这样其他组拥有的权限都会自带过来
  58. <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
  59. </record>
  60.  
  61. # 过滤域(ir.rule)的作用是:用户访问models的时候强制加上domain过滤条件。过滤域是附加在权限组中的
  62. <record id="account_move_line_rule_group_readonly" model="ir.rule">
  63. <field name="name">Readonly Move Line</field>
  64. # model_id:模块标识符,"model_"前缀+模块名(点替换成下划线)
  65. <field name="model_id" ref="model_account_move_line"/>
  66. # domain_force:过滤domain
  67. <field name="domain_force">[(1, '=', 1)]</field>
  68. # groups:该过滤与作用于哪些权限组
  69. <field name="groups" eval="[(4, ref('account.group_account_readonly'))]"/>
  70. <field name="perm_write" eval="False"/>
  71. <field name="perm_create" eval="False"/>
  72. <field name="perm_unlink" eval="False"/>
  73. </record>

Odoo14 groups && rule的更多相关文章

  1. Odoo14 ir.rule 中的domain查询语句

    # ir.rule 中的domain查询语句 # 当你的字段是many2one.many2many.one2many的时候domain都会强制加上过滤域 # tree显示的时候也会过滤 # m.mod ...

  2. 【odoo14】【开发侧】权限配置

    欢迎转载,但需标注出处,谢谢! 说明: 本文面向开发人员,普通用户可参考[odoo14][用户侧]权限配置.文章结构与用户侧一致. 目录 一. odoo中的对象 二. 权限控制 2.1 实现原理 2. ...

  3. 关于Freelists和Freelist Groups的研究【转】

    一.       什么是freelists 本文在于探讨Freelists和Freelist Groups的作用,存取机制,争用诊断和优化方法,同时通过理论和测试来推翻一些存在了很久的错误观点.本文的 ...

  4. [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 ...

  5. sonar rule

    bug类型: 1.".equals()" should not be used to test the values of "Atomic" classes.  ...

  6. Prometheus学习系列(五)之Prometheus 规则(rule)、模板配置说明

    前言 本文来自Prometheus官网手册1.2.3.4和 Prometheus简介1.2.3.4 记录规则 一.配置规则 Prometheus支持两种类型的规则,这些规则可以定期配置,然后定期评估: ...

  7. 记录规则(recording rules)与告警规则(alerting rule)

    记录规则(recording rules) 配置规则 Prometheus支持两种类型的规则,可以对其进行配置,然后定期进行评估:记录规则和警报规则.要在Prometheus中包含规则,请创建一个包含 ...

  8. 【odoo14】第十五章、网站客户端开发

    odoo的web客户端.后台是员工经常使用的地方.在第九章中,我们了解了如何使用后台提供的各种可能性.本章,我们将了解如何扩展这种可能性.其中web模块包含了我们在使用odoo中的各种交互行为. 本章 ...

  9. 【odoo14】第十四章、CMS网站开发

    第十四章.CMS网站开发** Odoo有一个功能齐全的内容管理系统(CMS).通过拖放功能,你的最终用户可以在几分钟内设计一个页面,但是在Odoo CMS中开发一个新功能或构建块就不是那么简单了.在本 ...

随机推荐

  1. 使用instanceof操作符判断对象类型及方法的重载

    学习内容: 一.使用instanceof操作符判断对象类型 1.instanceof操作符可以判断一个实例对象是否属于一个类. 语法:对象名 instanceof 类名 2.使用instanceof表 ...

  2. 这篇 DNS ,写的挺水的。

    试想一个问题,我们人类可以有多少种识别自己的方式?可以通过身份证来识别,可以通过社保卡号来识别,也可以通过驾驶证来识别,尽管有多种识别方式,但在特定的环境下,某种识别方法会比其他方法更为适合.因特网上 ...

  3. .Net分表分库动态化处理

    介绍 本期主角:ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖.零学习成本.零业务代码入侵 背景 最近有个小伙伴来问我,分表下他有一批数据,这个 ...

  4. SQL年龄计算方法

    第一种方法: 用DATEDIFF函数,DATEDIFF(YEAR,beginDate,endDate). 测试语句: 1 DECLARE @birthdayDate DATE 2 DECLARE @e ...

  5. Kubernetes Job Controller 原理和源码分析(三)

    概述Job controller 的启动processNextWorkItem()核心调谐逻辑入口 - syncJob()Pod 数量管理 - manageJob()小结 概述 源码版本:kubern ...

  6. Docker容器配置远程登录

    Docker容器配置远程登录 前言 docker 的网络模式主要有三种,bridge.host.none: pridge是docker安装后自动创建的虚拟网卡,创建容器时默认使用此模式. host是指 ...

  7. ExtJS 布局-Card 布局(Card layout)

    更新记录: 2022年6月1日 开始. 2022年6月6日 发布. 1.说明 卡片布局类似牌堆,每次只有一个子组件可见,子组件几乎填满了整个容器.卡片布局常用于向导(Wizard)和选项卡(Tabs) ...

  8. 当JAVA注解、AOP、SpEL相遇,更多可能变为了现实

    常规情况下,我们可以通过业务定制化的注解,借助AOP机制来实现某些通用的处理策略.比如定义个@Permission注解,可以用于标识在具体的方法上,然后用来指定某个方法必须要指定角色的人才能够访问调用 ...

  9. Skywalking光会用可不行,必须的源码分析分析 - Skywalking Agent &插件解析

    3 Skywalking源码导入 接上文,已经学习了Skywalking的应用,接下来我们将剖析Skywalking源码,深度学习Skywalking Agent. 3.1 源码环境搭建 当前最新版本 ...

  10. # 【由浅入深_打牢基础】WEB缓存投毒(上)

    image-20220611092344882 [由浅入深_打牢基础]WEB缓存投毒(上) 1. 什么是WEB缓存投毒 简单的来说,就是利用缓存将有害的HTTP响应提供给用户 什么是缓存,这里借用Bu ...