Openerp权限设置总结
主要对模块下的security 目录下的文件:xxx_security.xml、ir.model.access.csv进行讲解
@ xxx_security.xml
1、 建立组
<record id="group_department_project_admin" model="res.groups">
<field name="name">A</field>
<fieldname="category_id" ref="B"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/> //把admin用户加入该组中
</record>
@name 组名称
@ category_id 属于哪个应用程序,或者哪个模块
@ users 组里面的用户
这样B应用程序就建立了一个名叫A的组。并且初始化了A组的一个用户admin
注:组一般是由职位等级划分的
2、 组控制菜单显示
A
<record model="ir.ui.menu" id=" memu_id1">
<field name="name" >menu1</field>
<field name="groups_id" eval="[(6,0,[ref('A'),ref('B')]),]"/>
<field name="sequence">1</field>
</record>
@ name 菜单名称
@ groups_id 哪些组可以访问该菜单
@ sequence 该菜单的序号
这样A组与B组的成员都可以访问menu1菜单,menu1菜单的显示顺序为1
注:eval 后面解释,多个组访问用“,”隔开
B
<menuitem id="menu_id2 " name="menu2" parent="menu_id1" sequence="1" groups="A,B "/>
@ name 菜单名称
@ parent 父类菜单 如果没有可以不写parent
@ groups哪些组可以访问该菜单
这样menu1的子菜单menu2可以被A组合B组的成员访问
注:两种菜单的group设置有区别
3、 权限规则
这个可以过滤掉其它数据,只取你需要的数据
<record model="ir.rule" id="rule1">
<field name="name">rule1</field>
<field name="model_id" ref="model_model1"/>
<field name="global" eval="True"/>
<field name="domain_force">[1,’=’,1]</field>
<field name="groups" eval="[(4,ref('A'))]"/>
</record>
@ name 规则名称
@ model_id 依赖的模块
@ global 是否是全局
@ domain_force 过滤条件
@ groups 属于哪个组
这样A组的成员就可以取到model_model1的所有数据
注:model_id 这个放在后面讲ir.model.access.csv的时候讲
domain_force 这个很重要,只有这个写好了才能获取到自己想要的数据
4. ir.model.access.csv
定义组对对象的权限矩阵
@id 随便取
@name 随便取
@model_id:id 这个就是你所定义的对象了
@group_id:哪个组
@perm_read","perm_write","perm_create","perm_unlink" 增删改查权限了。1代表有权限
5.Eval
many2many
(0,0,{values}) 根据values里面的信息新建一个记录。
(1,ID,{values})更新id=ID的记录(写入values里面的数据)
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
(3,ID) 切断主从数据的链接关系但是不删除这个数据
(4,ID) 为id=ID的数据添加主从链接关系。
(5) 删除所有的从数据的链接关系就是向所有的从数据调用(3,ID)
(6,0,[IDs]) 用IDs里面的记录替换原来的记录(就是先执行(5)再执行循环IDs执行(4,ID))
例子[(6, 0, [8, 5, 6, 4])] 设置 many2many to ids [8, 5, 6, 4]
one2many
(0, 0,{ values })根据values里面的信息新建一个记录。
(1,ID,{values}) 更新id=ID的记录(对id=ID的执行write 写入values里面的数据)
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
例子:
[(0,0,{'field_name':field_value_record1,...}),(0,0,{'field_name':field_value_record})]
many2one的字段比较简单,直接填入已经存在的数据的id或者填入False删除原来的记录。
6.隐藏的常用技巧
* 直接隐藏
<group name="owner" position="attributes">
<attribute name="invisible">True</attribute>
</group>
* 满足某些条件的隐藏
<xpath expr="//field[@name='parent_id']" position='attributes'>
<attribute name="attrs">{'invisible': [('passenger','=', True)]}</attribute>
</xpath>
<group col="4" string='旅客信息' attrs="{'invisible': [('supplier','=', True)]}"></group>
* 通过组来隐藏
<xpath expr="//field[@name='type']" position="attributes">
<attribute name="groups">base.group_no_one</attribute>
</xpath>
* 菜单的隐藏
<record model="ir.ui.menu" id="crm.menu_crm_opportunities">
<field eval="[(6,0, [ref('base.group_no_one'),])]" name="groups_id"/>
</record>
Openerp权限设置总结相关推荐
- MAC OS X的ACL扩展权限设置
在WEB开发时,网站是以_www的用户运行的,而我在本地是以liuwencan的用户编辑的.这就带来一个问题:如果所有文件属于liuwencan,那么网站运行需要写文件时就因无权限而失败:如果所有文件 ...
- 服务器怎么设置网站写入权限,如何设置服务器写入权限设置方法
如何设置服务器写入权限设置方法 内容精选 换一换 将用户组添加至企业项目中,并为其设置一定的权限策略,该用户组中的用户即可拥有策略定义的对该企业项目中资源的使用权限.本小节指导您如何为企业项目添加用户 ...
- Ant Design Pro 登录流程以及路由权限设置
登录流程: 1.ant 框架最外层套了 SecurityLayout 布局 SecurityLayout 中判断用户是否登录,做自动跳转路由处理. 里面的 currentUser 和 currentU ...
- MongDB的安装和基本操作 一(权限设置)
安装MongoDB Mac: 最懒人的方法就是命令行: brew install mongodb 关于什么是brew和怎么安装可以在网上查,安装完成默认路径如下: cd/bin后就能看见mongodb ...
- Win2003 防木马、权限设置、IIS服务器安全配置整理
原贴http://hi.baidu.com/zzxap/blog/item/18180000ff921516738b6564.html 2009-02-10 10:45 一.系统的安装 1.按照Win ...
- linux网站权限怎么设置好,linux网站权限设置方法,网站安全配置,linux网站权限...
目的:为了保证网站不遭受木马入侵上传及修改文件. 相对安全的权限: 1.站点内所有目录和文件的用户和组都应该是root 2.所有目录权限默认的755 3.所有文件权限默认的644 (不能改文件) 1+ ...
- 对服务器文件夹写,服务器文件夹写入权限设置
服务器文件夹写入权限设置 内容精选 换一换 Linux x86-64(64位)服务器,常见的有EulerOS.Ubuntu.Debian.CentOS.OpenSUSE等.Windows 7及以上版本 ...
- win7访问不了服务器共享文件夹权限设置,win7系统开启共享文件夹访问权限的操作方法...
很多小伙伴都遇到过对win7系统开启共享文件夹访问权限进行设置的困惑吧,一些朋友看过网上对win7系统开启共享文件夹访问权限设置的零散处理方法,并没有完完全全明白win7系统开启共享文件夹访问权限是如 ...
- linux nginx php 目录权限,Nginx环境中配置网站目录权限设置
在Nginx与php环境下,务必要设置好Nginx目录权限,安全的目录权限设置,将是网站安全的一道屏障,有需要的朋友做个参考吧. 配置权限的原则是,在保证网站正常运行下,尽量给最低权限. nginx目 ...
- winform/timer控件/权限设置/三级联动
winform/timer控件/权限设置/三级联动 一.timer控件 组件--timer timer是一个线程,默认可以跨线程访问对象 属性:Enabled--可用性 Interval--间隔时间 ...
最新文章
- python unicodeencodeerror_解决 Python UnicodeEncodeError 错误
- 421. Maximum XOR of Two Numbers in an Array——本质:利用trie数据结构查找
- 【科技金融】CART树现金贷风控策略
- Servlet映射路径中的通配符
- 双下划线开头的变量实现了类私有变量功能
- MySQL触发器(转载)
- pandas打印全部列_python——pandas练习题1-5
- idea创建包怎么让包分层_IDEA让包分层显示的实现方式
- NS3 之 入坑
- 树莓派PICO使用MicroPython + HX1838 接收遥控器数据 NEC解码
- xz1刷Android10,索尼xz1国行版安卓9.0固件
- Qt QLabel文本框的使用
- linux zip,tar压缩文件夹 忽略 .git 文件夾
- VS2019配置WinPcap开发
- ENVI哨兵一号数据处理
- php smarty extends,php封装的smarty类完整实例
- Linux中阶—远程接入sshsftp(八)
- BDC模式与OKCODE、 CALL TRANSACTION用法
- 人脸识别分类,看了就会
- 使用函数实现数组元素的赋值
热门文章
- Xenu简单使用说明
- 【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿
- loj 1224 - DNA Prefix
- 网上订餐python_网上订餐管理系统摘要.doc
- 第四十七题 UVA437 巴比伦塔 The Tower of Babylon
- 基于ESP32测温湿度上传到OneNET并通过微信小程序控制,查看,下发指令
- 剑英陪你玩转图形学(五)focus
- 人工智能轨道交通行业周刊-第15期(2022.9.19-9.25)
- keras中的后端backend及其相关函数(K.prod,K.cast)
- 【Vic的小课堂】Unity实现游戏功能(1)—矩形框选