openerp权限设置总结

Openerp权限设置

最近一直在弄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权限设置总结,布布扣,bubuko.com

时间: 2024-10-14 08:48:39

openerp权限设置总结的相关文章

MongoDB学习之权限设置详解

MongoDB数据库是一个基于分布式文件存储的数据库,为目前主流的NoSQL数据库,已被应用到许多高性能的大型系统中.如果之前从未接触MongoDB,可以访问 MongoDB官网 快速了解其主要特性及应用场景. MongoDB的安装 此文示例的环境基于CentOS 7.3 64位,MongoDB版本为3.2.4. 1. 在服务器上,以超级用户权限执行yum安装,命令如下: [[email protected]]# su [username] -- username 为你登陆服务器的用户名[[em

SVN单独用户具有某个文件夹的单独权限设置

项目要求:       修改guest用户只能对项目的 code 文件下的内容具有 r (读)的权限 设置办法: 在浏览器中访问 svn://XXX 1.权限设置之前(rw)用户之前预览        ? 2.进行设置 编辑 ../conf/authz 文件   # vim authz 这样设置即可,SVN不用重启就会生效 3.设置后进行验证测试 浏览器中访问 svn://XXX/flight/trunk/code 即可实现 guest 用户对 code 文件只有只读的权限,其他文件到看不到 遗

Linux运维六:用户管理及用户权限设置

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也可以帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和各自的口令.用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录. 实现用户账号的管理,要完成的工作主要有如下几个方面: · 用户账号的添加.删除与修改. ·

winform(MDI窗体容器、权限设置)

一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内部打开? 窗体对象名.MdiParent = this; (2)窗体打开时最大化属性不好用,怎么办? 在实例化窗体对象,show之前,用代码设置最大化属性 注意:窗体的WindowState属性必须为默认值Normal (3)内部窗体最大时右上角总是显示最大最小关闭按钮,如何去掉? 在MDI窗体里放

文件/目录权限设置命令chmod的详细用法

chmod是文件/目录权限设置的命令,在Linux中经常遇到,本博文以下总结chmod的详细用法. Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其他other.u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是. + 表示增加权限.- 表示取消权限.= 表示唯一设定权限. r表示可读取,w表示可写入,x表示可执行. 举例说明: (1).将档案file1.txt 设为所有人皆可读取: chmod u

RDIFramework.NET 框架之组织机构权限设置

RDIFramework.NET 框架之组织机构权限设置 对于某些大型的企业.信息系统,涉及的组织机构较多,模块多.操作权限也多,对用户或角色一一设置模块.操作权限等比较繁琐.我们可以直接对某一组织机构进行权限的设置,这样设置后,同一组织机构的用户就可以拥有相应的模块访问权限,操作权限了,这样也能减轻管理人员的负担.要启用组织机构权限,需要配置Config.xml配置节"EnableOrganizePermission"为True.要打开组织机构权限设置,我们需要选择"系统管

Linux 权限设置

一.文件和目录权限 在Linux系统中,用户可以对每一个文件或目录都具有访问权限,这些访问权限决定了谁能访问,以及如何访问这些文件和目录. 1.文件权限简介 在Linux系统中,每一位用户都有对文件或目录的读取.写入和执行权限.第1套权限控制访问自己的文件权限,即所有者权限.第2套权限控制用户组访问其中一个用户的文件的权限.第3套权限控制其他所有用户访问一个用户的文件的权限.这3套权限赋予用户不同类型(即所有者.用户组和其他用户)的读取.写入及执行权限. 2.一般权限 用"ls -l"

linux 用户权限设置

# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假设当前用户是sam,则下面的命令修改该用户自己的口令: # passwd Old password:****** New password:******* Re-enter new password:******* 如果是超级用户,可以用下列形式指定任何用户的口令: # passwd sam New

PSSecurityException之PowerShell权限设置

Windows下PowerShell默认的权限级别是Restricted,不允许执行PS脚本(即.ps1文件).如果在Restricted权限级别下运行,会得到错误信息: .\XXXX.ps1 : File XXXX.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.micr