odoo 权限问题
odoo 权限问题
权限组问题
权限组是为了将人员按组划分同一分配权限。权限组的建立是基于每个应用来实现的
- 建立一个应用的分组(可省略,主要用于创建用户时有选择项)
建立一条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>

- 创建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>
- 给分组添加权限
添加权限通常在security下的ir.model.access.csv
- 继承权限
<!--员工组-->
<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>
- 增加预设用户
<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 权限问题的更多相关文章
- ODOO权限管理,在两个方面设置权限
转载参考https://zhuanlan.zhihu.com/p/29130388 在odoo中新建两个用户user1,user2 新建用户 建完了用户,记得编辑用户,设置密码. 然后以user1用户 ...
- odoo权限配置讲解2
今天我们在来讲解一下odoo中配合使用公司开发的权限配置模块,简单配置odoo权限的操作说明 接着上篇讲到的,昨天我们只是做了一个简单的表单模型的筛选规则 今天来讲解一下如何在创建内贸报价单的时候,在 ...
- odoo 权限配置讲解
今天来讲解一下odoo权限配置的简单讲解,配合公司开发的权限模块的使用,进行odoo权限配置的说明 BaseSecurityExtend 2.0模块 这是公司自主开发的一款针对odoo菜单级别进行可视 ...
- odoo权限机制
转两篇关于权限的2篇文章,加深这方面的认识.注:后面附有原作者地址,希望不构成侵权. 第一篇:http://www.cnblogs.com/dancesir/p/6994030.html Odoo的权 ...
- odoo权限管理
Odoo的权限的核心是权限组(res_groups).对每个权限组,可以设置权限组的菜单表示,对象表示,记录规则表示,字段表示. 1.菜单/对象级别 设置哪些人可以访问哪些菜单/对象,对象的访问权限包 ...
- odoo权限管理(二.记录管理)
规则保存在ir.rule模型表里,需要设置关联某个模型,关联很多组,访问权限控制和domian. 通过domain_force过滤出的一些记录来执行约束. 例子:经理只能删除状态为'cancel'的客 ...
- Odoo权限控制
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9278734.html 一:Odoo中的权限设置主要有以下5种 1)菜单.报表的访问权限 Odoo可以设置菜单项 ...
- Odoo权限控制详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826105.html 一:Odoo中的权限设置主要有以下5种 1)菜单.报表的访问权限 Odoo可以设置菜 ...
- odoo开发笔记 -- odoo权限管理
odoo框架 整体权限可以分为4个级别: (1) 菜单级别: 不属于指定菜单所包含组的用,看不到相应菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问(2) 对象级别: 对某个 ...
随机推荐
- Python编程从入门到实践笔记——变量和简单数据类型
Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...
- IIS安装以及发布
控制面板-所有控制面板项-程序和功能-打开或关闭windows功能-Internet 信息服务,里面全部打钩点击确实.安装完成. 控制面板-管理工具-Internet 信息服务管理器-双击打开 ...
- jQuery里面的DOM操作(查找,创建,添加,删除节点)
一:创建元素节点(添加) 创建元素节点并且把节点作为元素的子节点添加到DOM树上 append(): 在元素下添加元素 用法:$("id").append("定义的节点& ...
- mysql进阶知识
一.存储引擎 引擎 指的是一个系统的核心部分 引擎有不同分类是为了适应不同的使用场景 查看mysql支持所有引擎 show engines; MRG_MYISAM 是一堆MYISAM表的集合 用于做水 ...
- 编程语言 Node.js中使用到的npm工具
啥是npm? npm就是(node package manager)包结点管理器,它随同Node.js一起安装的,由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了. 同样可以通过输 ...
- Python数据描述与分析
在进行数据分析之前,我们需要做的事情是对数据有初步的了解,比如对数据本身的敏感程度,通俗来说就是对数据的分布有大概的理解,此时我们需要工具进行数据的描述,观测数据的形状等:而后才是对数据进行建模分析, ...
- Fragment嵌套Fragment时候。子类fragment调用父容器Fragment方法
业务场景:有的时候我们的页面可能是Activity 嵌套多个Fragment ..其中某个Fragment 又嵌套多个Fragment. 其中某个子Fragment 定义为 NewsFragmen ...
- 读书笔记之_Win10 与Jmeter5.1.1界面兼容:
读书笔记之win10 与jmeter5.1.1界面兼容: 调整前:
- DVWA 黑客攻防演练(十四)CSRF 攻击 Cross Site Request Forgery
这么多攻击中,CSRF 攻击,全称是 Cross Site Request Forgery,翻译过来是跨站请求伪造可谓是最防不胜防之一.比如删除一篇文章,添加一笔钱之类,如果开发者是没有考虑到会被 C ...
- java笔记----property文件读写
package com.test.property; import java.io.BufferedInputStream; import java.io.File; import java.io.F ...