odoo 权限问题

权限组问题

权限组是为了将人员按组划分同一分配权限。权限组的建立是基于每个应用来实现的

  1. 建立一个应用的分组(可省略,主要用于创建用户时有选择项)

建立一条record记录model是ir.module.category,例如在my_task(一个应用)myaddons/my_task/security/permission.xml中编写下面内容:

<record id="module_category_my_task" model="ir.module.category">
<field name="name">我的任务</field>
<field name="description">我的任务app</field>
<field name="sequence">1</field>
</record>

  1. 创建2个分组.
<odoo>
<data>
<record id="module_category_my_task" model="ir.module.category">
<field name="name">我的任务</field>
<field name="description">我的任务app</field>
<field name="sequence">1</field>
</record>
<!--创建应用权限分组-->
<record id="my_task_manage" model="res.groups">
<field name="name">管理员</field>
<!--category_id关联的应用权限分类-->
<field name="category_id" ref="module_category_my_task"/>
<!--默认加入权限组的用户,base.user_root指系统管理员用户-->
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<!--员工组-->
<record id="my_task_employee" model="res.groups">
<field name="name">员工</field>
<!--category_id关联的应用权限分类-->
<field name="category_id" ref="module_category_my_task"/>
</record>
</data>
</odoo>
  1. 给分组添加权限

添加权限通常在security下的ir.model.access.csv

  1. 继承权限
<!--员工组-->
<record id="my_task_employee" model="res.groups">
<field name="name">员工</field>
<!--category_id关联的应用权限分类-->
<field name="category_id" ref="module_category_my_task"/>
<!--继承基础员工组,添加的员工会自动添加到基础员工中去-->
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
  1. 增加预设用户
<field name="users" eval="[(4, ref('base.user_root'))]"/>

name 组的描述名称
category_id 指定此组属于哪个应用程序(模块)
users 指定了组里面的用户,这里表示把admin用户添加到该组
eval 解析
(4,ID)添加主从链接关系到id=ID的对象。
(3,ID)去除和id=ID的对象主从链接关系,但是不删除这个对象
(2,ID) 去除和id=ID的对象主从链接关系,并且删除这个对象(调用unlink方法)
(5) 去除所有的链接关系,也就是循环所有的从数据且调用(3,ID)
(6,0,[IDs]) 用IDs里面的记录替换原来链接的记录,即先执行(5)再循环IDs执行(4,ID)

记录权限(record_rule)

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<!-- Sequences for sale.order -->
<record id="wf_sale.sale_order_rule" model="ir.rule">
<field name="name">销售员工访问</field>
<!--model_id ref,many2one到模型的id,model_表名-->
<field name="model_id" ref="model_wf_sale_sale_order"/>
<!--domain_force过滤条件,订单销售人id是当前登录用户的id,或者没销售的订单-->
<field name="domain_force">['|',('sale_people','=',user.id),('sale_people','=',False)]</field>
<!--指定是哪个组-->
<field name="groups" eval="[(4,ref('wf_sale.wf_sale_employee'))]"/>
</record>
<record id="wf_sale.sale_order_manage_rule" model="ir.rule">
<field name="name">销售经理访问</field>
<field name="model_id" ref="model_wf_sale_sale_order"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4,ref('wf_sale.wf_sale_manage'))]"/>
</record>
</data>
</odoo>

参数介绍

  • name:记录规则名称,可随意定义
  • model_id:添加记录规则得model,写法:模块名.model_表名(表名有.需要换成_),内部使用可以加模块名
  • domain_force:记录过滤条件
  • groups:绑定权限生效的组

按钮权限

<button string="回退报价单"
type='object'
class='oe_highlight'
name="action_roll_back"
groups="wf_sale.wf_sale_manage"
attrs = "{'invisible':[('state','=','draft')]}"
/>
<button
string="生成销售单"
type="object"
class='oe_highlight'
name="action_commit_order"
groups="wf_sale.wf_sale_manage"
attrs = "{'invisible':[('state','=','approved')]}"
/>
<button string="确定完成"
type="object"
class='oe_highlight'
name='action_commit_done'
groups="wf_sale.wf_sale_manage"
attrs = "{'invisible':[('state','=','done')]}"
/>

通过groups指定权限组id(需要加上模块名)来绑定拥有权限的组,这样只有有权限的人才能看到按钮,并且通过销售的状态来决定是否显示按钮

odoo 权限问题的更多相关文章

  1. ODOO权限管理,在两个方面设置权限

    转载参考https://zhuanlan.zhihu.com/p/29130388 在odoo中新建两个用户user1,user2 新建用户 建完了用户,记得编辑用户,设置密码. 然后以user1用户 ...

  2. odoo权限配置讲解2

    今天我们在来讲解一下odoo中配合使用公司开发的权限配置模块,简单配置odoo权限的操作说明 接着上篇讲到的,昨天我们只是做了一个简单的表单模型的筛选规则 今天来讲解一下如何在创建内贸报价单的时候,在 ...

  3. odoo 权限配置讲解

    今天来讲解一下odoo权限配置的简单讲解,配合公司开发的权限模块的使用,进行odoo权限配置的说明 BaseSecurityExtend 2.0模块 这是公司自主开发的一款针对odoo菜单级别进行可视 ...

  4. odoo权限机制

    转两篇关于权限的2篇文章,加深这方面的认识.注:后面附有原作者地址,希望不构成侵权. 第一篇:http://www.cnblogs.com/dancesir/p/6994030.html Odoo的权 ...

  5. odoo权限管理

    Odoo的权限的核心是权限组(res_groups).对每个权限组,可以设置权限组的菜单表示,对象表示,记录规则表示,字段表示. 1.菜单/对象级别 设置哪些人可以访问哪些菜单/对象,对象的访问权限包 ...

  6. odoo权限管理(二.记录管理)

    规则保存在ir.rule模型表里,需要设置关联某个模型,关联很多组,访问权限控制和domian. 通过domain_force过滤出的一些记录来执行约束. 例子:经理只能删除状态为'cancel'的客 ...

  7. Odoo权限控制

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9278734.html 一:Odoo中的权限设置主要有以下5种 1)菜单.报表的访问权限 Odoo可以设置菜单项 ...

  8. Odoo权限控制详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826105.html 一:Odoo中的权限设置主要有以下5种 1)菜单.报表的访问权限 Odoo可以设置菜 ...

  9. odoo开发笔记 -- odoo权限管理

    odoo框架 整体权限可以分为4个级别: (1) 菜单级别: 不属于指定菜单所包含组的用,看不到相应菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问(2) 对象级别: 对某个 ...

随机推荐

  1. jquery快速入门(四)

    jQuery 遍历 向上遍历 DOM 树 parent() parent() 方法返回被选元素的直接父元素.该方法只会向上一级对 DOM 树进行遍历. parents() parents() 方法返回 ...

  2. wkhtmltox实现网页转换成图片或pdf

    1.先下载http://download.gna.org/wkhtmltopdf/obsolete/windows/wkhtmltox-0.11.0_rc1-installer.exe,安装 2.在命 ...

  3. js中关于两个变量的比较

    今天在匆忙的写代码过程中,测试突然跑过来跟我说,有一个小的bug,但是不能完全的复现,但确实存在.需要我们这边参与查找.首先来说一下我们这个的业务逻辑,其实非常的简单,就是一个开房间的后台,里面有一项 ...

  4. Ext.isIterable

    Ext.isIterable用于判断传入的参数是否为可迭代的 在这4种情况下,函数返回true 1:数组2:函数参数arguments3:HTML collections : NodeList4:HT ...

  5. vue路由懒加载 及import

  6. wordpress常用函数及使用位置

    single 页面: 摘要内容:the_excerpt():如果摘要空,摘取正文内容:需要在循环中使用 获取当下页面的分类:wp_get_post_terms( int $post_id, strin ...

  7. 在VS 2017 下创建 Xamarin NuGet Package

    最近在做一个Xamarin for android的项目,有个需求是一次可以从相册中选择多张图片,但是 android API<19 的版本还不支持一次选择多张图片,在网上找了一下,发现原生的组 ...

  8. Python-函数小结

    原文出处,如有侵权,请联系删除. 用户自定义.py文件 如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abs ...

  9. Ubuntu 服务器443端口证书配置

    配置虚拟主机: cd /etc/apache2/sites-available 从默认的模板文件中复制过来一份进行自己的配置: sudo cp ./default-ssl.conf ./mysite1 ...

  10. Android探究之ANR

    什么是ANR ANR:Application Not Responding,即应用程序无响应. 在Android中,ActivityManagerService(简称AMS)和WindowManage ...