Odoo中文网|Odoo实施培训

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

Odoo权限控制

[复制链接]

119

主题

119

帖子

566

积分

高级会员

Rank: 4

积分
566
跳转到指定楼层
楼主
发表于 2017-6-25 23:09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
除了使用自定义代码管理访问外,Odoo主要以数据驱动的方式进行权限管理。这种机制通过组与特定用户相关联:用户属于一个或多个组,权限与组关联,从而将权限应用于用户。
模型权限
通过ir.model.access的记录行进行管理,定义模型的访问权限。每个访问权限项对应一个模型,组(一个或者没有)以及相应的权限。
模型权限是加法的,对于给定的模型,用户的访问权限是用户所在的全部组的权限的集合。例如:用户属于两个组,一个组有写入权限,另外一个组有删除权限,则用户拥有写入和删除权限。
如果模型权限未指定组,则访问权限适用于所有用户,否则仅适用于给定组的成员。可用的权限包括:
perm_create:创建
perm_read:阅读和搜索
perm_write:更新已有记录
perm_unlink:删除已有记录
记录行规则
记录行规则是对记录行的操作权限(创建、读取、更新和删除)控制。在应用了模型权限后再应用记录行规则。记录行规则的定义包括:
  • 规则对应的模型权限
  • 规则适用的一组权限(例如,如果设置了perm_read,则只有在读取记录时才会检查该规则)
  • 规则适用的一组用户组,如果没有指定组,则该规则是全局的
  • 规则适用的记录行,用domain来定义,符合domain规则的可访问,不符合的则不能访问。这里的domain有两个上下文可以使用:user是当前用户的记录行,time是时间模块。
    全局规则(规则中未指定组)和组规则(规则中指定了组)的使用方式截然不同:
  • 全局规则是减法的,必须全部匹配才能访问记录
  • 组规则是加法的,其中任何一个匹配(并且全部的全局规则都匹配)就能访问记录
    这意味着第一个组规则限制记录的访问,但是其它的所有组规则都在扩展访问。而全局规则是每一个规则都在限制记录的访问(或者不起作用)。
    警告
    记录行规则和模型权限对于管理员用户无效,管理员用户拥有完全权限

字段权限
这个是在7.0版本之后新增的。ORM的Field有一个groups属性,这个属性可以定义一个组的列表(以逗号分隔的标识符)。如果当前用户不是这个组列表中的任一组成员,那当前用户不能访问这个字段:
  • 受限制的字段将在视图请求中被自动移除
  • 受限制的字段将在fields_get()请求中被移除
  • 如果尝试(显示的)读取或写入受限制字段会导致访问错误
工作流流转规则
工作流流转可以限制在一个特定的组中,组外的用户无法触发转换。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 21:30 , Processed in 0.010248 second(s), 10 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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