Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7177|回复: 0
打印 上一主题 下一主题

OpenERP的权限设置

[复制链接]

11

主题

15

帖子

45

积分

新手上路

Rank: 1

积分
45
跳转到指定楼层
楼主
发表于 2015-9-7 20:16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OpenERP的权限的核心是权限组(res_groups)。对每个权限组,可以设置权限组的Menus,Access Right,Record Rule。

Menus表示,该权限组可以访问哪些菜单。如果指定某权限组可以访问某父菜单,那么,系统会根据该权限组可访问的对象(Access Right中定义)自动计算,哪些子菜单可以显示。计算规则是,如果没有为该子菜单指定任何权限组,且该权限组对该子菜单关联的对象有至少读的权限,那么,系统会自动显示该菜单。如果不希望系统自动显示某子菜单,只要把该子菜单加入系统自带的“Useability / No One”权限组,该菜单就不会被显示了。“Useability / No One”通常用来隐藏某些菜单,通常不会指定任何用户属于“Useability / No One”权限组。

Access Right表示,该权限组可以访问哪些对象,以及拥有读、写、删、建中的哪个权限。如下图中最后一行,表示,Employee权限组对Partner(res_partner)对象只有读权限。


Record Rule表示,该权限组可以访问对象中的哪些记录,以及拥有读、写、删、建中的哪个权限。Access Right指定的权限,是对该对象的数据表里的所有记录拥有该权限。Record Rule指定,只对该对象的数据表里的某些记录(通过定义过滤条件Domain指定)拥有某些(读、写、删、建)权限。


如上图表示,Employee权限组,对申购单(Purchase Requisition) 对象中,对本部门的,且处于草稿状态的申购单,拥有创建、删除、更新的权限。对于非本部门的或者不是草稿状态的申购单,由于不符合Domain条件,更新或删除时候,系统都会报错。
['&',('department', '=', user.context_department_id.id),('state', '=', 'pr_draft')]

这个Domain条件表示,申购单的部门等于当前用户的部门,申购单的状态是草稿(pr_draft)。系统的实际实现是,在数据库访问的Update, Delete等语句中,强行加上本处定义的Domain条件(因此在系统内部,此处的Domain条件叫“Domain_Force”,哈哈)。

字段权限,还可以指定,某字段只能供某权限组访问。Access Right和Record Rule表示,权限组可以访问哪些对象,以及对象里的哪些记录。而字段权限指定,权限组能访问记录里的哪个字段。如下例表示,只有base.group_admin权限组才可以读、写name字段。
'name': fields.char('Name', size=128, required=True, select=True, write=['base.group_admin'],read=['base.group_admin'] ),
又如下例在视图上指定,只有group_product_variant权限组才能看到产品的variants(规格)字段。
<field name="variants" groups="product.group_product_variant"/>

工作流权限,在工作流的迁移(Transition)的定义中,可以指定哪个权限组可以触发本迁移,定义语法是:<field name="group_id" ref="groupid"/> 。

灵活组合上述权限设置,可以满足非常复杂的权限要求,如工作流的审批权限,菜单的访问权限,记录的访问权限,字段的访问权限,等等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-5-3 22:12 , Processed in 0.011650 second(s), 14 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表