OpenERP 管理权限的方法非常灵活,核心在于组.

你属于哪个组决定了:
每个菜单项的可见性
数据库中的每个表的可访问性

OpenERP中的组,在每个模块下的 security 目录下的文件:xxx_security.xml、ir.model.access.csv定义。

x_security.xml  文件定义组和组对菜单的访问权限
ir.model.access.csv  定义组对对象的权限矩阵。

---------------------
x_security.xml 的介绍
---------------------

<record id="group_product_manager"  model="res.groups"> 
    <field name="name">旅游产品经理</field> 
</record>

<record model='ir.ui.menu' id='menu_seat_management'>
   <field name="groups_id" eval="[(6,0,[ref('group_product_manager')])]"/> 
</record>

第一条-导入一条记录到数据表 res_groups,该条记录的 name 字段为“旅游产品经理”。id="group_product_manager" 是本条记录的标志,在模块范围内必须唯一。

第二条-在数据表 ir_ui_menu 中导入一条记录,意思是id=group_sale_manager的组,对id=menu_shop_configuration 的菜单有访问权限。

(model="res.groups",表示对象 res.groups,该对象实际就是数据库的数据表 res_groups)

---------------------------
ir.model.access.csv 的介绍
---------------------------

Defining Access Rights(ir.model.access.csv) 
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"

"access_product_product_user","product.product.user","model_product_product",         "base.group_user",1,0,0,0 
"access_product_product_manager","product.product.manager","model_product_product",   "product.group_product_manager",1,1,1,1

该两行定义了组 base.group_user、product.group_product_manager 对对象 model_product_product 的读、写、建、删的权限。

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删除原来的记录。

隐藏的常用技巧

* 直接隐藏

<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管理权限的方法相关推荐

  1. ylmf3.0 分配修改登录root用户管理权限的方法

    ylmf OS 3.0 分配修改登陆root用户管理权限的方法 ylmf是由ubuntu系统改装而来的,她跟ubuntu一样有一个与众不同的特点,那就是初次使用时,你无法作为root 来登录系统,为什 ...

  2. ylmf OS 3.0 分配修改登陆root用户管理权限的方法

    ylmf OS 3.0 分配修改登陆root用户管理权限的方法 ylmf是由ubuntu系统改装而来的,她跟ubuntu一样有一个与众不同的特点,那就是初次使用时,你无法作为root 来登录系统,为什 ...

  3. android 加网络权限管理,Android添加用户组及自定义App权限的方法

    Android:4.4.4 一.应用场景 在Android设备上,现在我们外接了一个USB转串口的设备,设备节点是/dev/ttyUSB0: # ls -l /dev/ttyUSB0 crw-rw-- ...

  4. 服务器怎么设置网站写入权限,如何设置服务器写入权限设置方法

    如何设置服务器写入权限设置方法 内容精选 换一换 将用户组添加至企业项目中,并为其设置一定的权限策略,该用户组中的用户即可拥有策略定义的对该企业项目中资源的使用权限.本小节指导您如何为企业项目添加用户 ...

  5. 软件需求管理用例方法二

    继续读这本书就会发现: 罗列清楚系统事件,是正确建立系统用例的必要条件. 系统事件分为两类:系统外部事件和系统内部事件 外部事件就是外部参与者对系统交互的具体工作,内部事件就是系统内部触发的工作,通常 ...

  6. Android 5.x 权限问题解决方法

    Android 5.x 权限问题解决方法               一.  android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种 ...

  7. linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...

    一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装 ...

  8. 基于 Annotation 拦截的 Spring AOP 权限验证方法

    余 清, 软件工程师, IBM 简介: 使用 Annotation 可以非常方便的根据用户的不同角色,分配访问 Java 方法的权限.在 Java Web 开发中,使用这种方法,可以提高系统的松耦合度 ...

  9. 在Linux中挂载Windows端共享权限设定方法和出现报错的解决办法

    在Linux中挂载Windows端共享权限设定方法 Windows端共享权限设定: 关于挂载共享文件夹的报错解决 1.出现smbclient 报错 2.关闭windows防火墙 3.确认windows ...

  10. Android检测是否有悬浮窗,Android 获取判断是否有悬浮窗权限的方法

    现在很多应用都会用到悬浮窗,很多国产rom把悬浮窗权限加入控制了,你就需要判断是否有悬浮窗权限,然后做对应操作. Android 原生有自带权限管理的,只是被隐藏了.看android源码在androi ...

最新文章

  1. R语言-处理异常值或报错的三个示例
  2. python编程学习笔记_python编程:从入门到实践学习笔记-Django开发用户账户(一)...
  3. thinkphp+ajax无刷新分页并加载显示图片
  4. javaweb学习总结(十九):JSP标签
  5. esp32 怎么分配freertos 堆栈大小_详解STM32单片机的堆栈
  6. 桶排序算法c语言10个数组,桶排序算法
  7. 那些在11gR2中可能惹祸的新特性,一张列表帮助你摆脱升级11gR2带来的烦恼
  8. ASP.NET2.0 HiddenField控件
  9. ios信息交互 协议的使用
  10. 软件从“出生”到“消亡”的过程称为_软件测试面试最常问到的101个面试问题,你中枪了吗?(一)...
  11. 计算机毕业设计Java蔚蓝在线学习平台(源码+系统+mysql数据库+Lw文档)
  12. 网管第一课——网络组建与管理 目录
  13. HiJson修改版,修改为按json字符串默认字段顺序格式化
  14. java 授课录像_讲课视频录制方法,录制上课录像详细步骤
  15. 聊聊苹果电脑上不错的三维建模软件
  16. cenetos 查看字体库_Centos7 安装字体库中文字体
  17. excel中if的嵌套使用方法
  18. arcgis多面体数据转面_多面体转 Collada (转换)
  19. linux中关于磁盘配额的描述,Linux中的磁盘配额
  20. [量子计算]量子计算常用高频词汇集(佛系月更)

热门文章

  1. C# Thread详解
  2. 数据库系统原理与应用教程(041)—— MySQL 查询(三):设置查询条件
  3. 七战DTCC铸成ACE Director 去哪儿网周彦伟畅聊数据库的十八般武艺
  4. 隐性代言vancl 徐静蕾卖的不只是项链?
  5. 计算机桌面文件能单独设密码吗,win7文件夹设置密码_给单独一个文件夹设密码...
  6. 免费网站地图制作工具 —— Sitemap X
  7. 计算机日志存储在哪里,Win7系统日志存放位置的更改
  8. 【BSC】使用Python玩转PancakeSwap(入门篇)
  9. 如何在51单片机实现日程提醒(生日闹钟)
  10. mysql localhost值_jdbc:mysql://localhost:3306/mysql这句话中localhost具体指什么的localhost?能修改么?在哪里配置的?...