Openerp管理权限的方法

Dear 丶 2022-08-04 01:57 283阅读 0赞

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

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

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

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

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


旅游产品经理


第一条-导入一条记录到数据表 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删除原来的记录。

隐藏的常用技巧

* 直接隐藏


True

* 满足某些条件的隐藏

  1. <xpath expr="//field\[@name='parent\_id'\]" position='attributes'>
  2. <attribute name="attrs">\{'invisible': \[('passenger','=', True)\]\}</attribute>
  3. </xpath>





* 通过组来隐藏


base.group_no_one

* 菜单的隐藏



发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读