宜兴通达竭诚为您服务。

配置ODOO12安全权限控制

2020-09-11 07:09:00     作者: Administrator     来源:互联网,版权归作者所有     浏览次数: 127     文字大小:【】【】【

你没有登录,文章中的图片无法正常显示,请点击登录

Odoo自带有权限控制机制,用户仅能使用被授权了的功能。这就意味着我们自建的库功能不对普通用户甚至是管理员开放。

Odoo 安全权限通过安全组来设置访问权限。每个用户的权限根据所属组来决定,对于我们的测试项目,我们将创建一个 to-do 用户组,然后通过组来分配可使用功能的用户。我们通常使用 ACL 为某个组赋予指定模块的读或写权限,就当前项目,我们对添加的 to-do 项模型添加读和写权限。

此外,我们还可以设置用户对指定模型的记录范围的访问规则。本项目中 to-do 项为用户私有,所以用户仅能访问自己创建的记录,这通过安全记录规则实现。

安全组

访问控制基于组,通过安全组对模型设置权限,控制组内用户所能使用的菜单项。要做更精细化的控制,我们可以对指定菜单项、视图、字段甚至是(带有记录规则的)数据记录进行权限控制。

安全组还可以对应用进行管理,通常每个应用有两个组:用户组(Users)可执行日常操作、管理员组(Manager)可对应用执行所有配置。

下面我们新建一个安全组,在开发者模式下菜单中访问设置>管理中心>群组


点击创建按钮,通过如下值创建一条新记录:

  • 应用: 留空

  • 名称: To-do User

  • 继承标签下: 添加用户类型/内部用户项

效果如下:

在应用下拉列表中还没有to-do 应用,所以我们直接通过组表单来添加。我们还继承了内部用户用户组,那么这个组的成员也会自动(递归)成为所继承组的成员,以获取他们原有的权限。内部用户是基础权限组,通常应用的安全组都继承它。

安全权限控制列表

现在我们可以对指定组(To-do User)进行指定模型的权限授予,在上述表单的访问权限标签下添加一条记录,对应的值为:

  • 名称: To-do Item User Access

  • 对象: 在列表中选择To-do Item

  • 勾选Read Access, Write Access, Create Access, and Delete Access


模型权限也可通过设置>技术>安全>访问权限进行管理。我们无需向Partner 模型添加权限,因为我们的组继承了内部用户组,已经获取了相应权限。


现在可以将 admin 用户添加到新建组来测试新加的权限设置

1、在菜单中点击设置>管理中心>用户,从用户列表中选择Mitchell Admin,然后编辑表单


2、在访问权限标签下的其他版块,会发现一个名为 To-do User 的复选框用于让用户加入权限组,勾选后点击保存按钮保存表单。


如果一切操作都正确的话,我们就可以看到 To-do 顶级菜单,用于添加任务清单项,并且我们只能访问自己的任务清单而看不到其它人的。

安全记录规则

在对模型赋予访问权限时,默认用户可以访问到他的所有记录。但有时我们要限制每个用户所能访问的特定记录。通过记录规则可以实现这一点,通过定义 domain 过滤器来对读和写操作进行控制。

比如我们这里的 to-do 应用,任务项应为用户私有,我们不希望其他用户看到自己的记录。需要添加记录规则来过滤出创建者自己的记录:

  • 框架会自动添加create_uid字段,并存储创建记录的用户,通过该字段可以确定每条记录的创建者

  • 在user变量中可获取到当前用户,user 变量读取上下文中 domain 过滤器过滤后的对象

通过[(‘create_uid’, ‘=’, user.id)]域表达式可实现这点。

通过菜单中的设置>技术>安全>记录规则进入记录规则设置页,

点击创建按钮并输入如下值:

  • 名称: 一个描述性的标题,这里使用 To-do Own Items

  • 对象: 在列表中选择模型,此处为To-do Item

  • 访问权限: 规则所授予的操作,这里保留全部勾选

  • 规则定义: 域筛选器,填写 [('create_uid','=', user.id)]

  • 群组: 作用的安全组,选择To-do User组

效果如下:


此时就完成了记录规则的设定,现在可以试试用 Admin 和 Demo 用户(需提前将 Demo 用户加入到安全组)分别创建几个任务项,各自将只能看到自己创建的任务。记录规则可通过右上角的切换按钮进行关闭,一旦关闭,用户就可以看到所有人的任务清单了。

视频演示:

http://ctdrive.tderp.com/file/13502532-460836714

http://www.tderp.com/download/details/odoo12-846


相关文章 评论

服务原则及地区范围

宜兴通达团队,在企业网络维护和企业信息化建设与咨询方面,有10多年经验。

我团队愿与客户一道,力求彻底解决客户问题!
我们不是在给企业提供“头痛医头、脚痛医脚”的暂时解决方案,而是在部署根本性安全与稳定服务!!
我们愿携手客户,建立企业IT规划;杜绝随意安装系统、软件等操作;力求共同维护有序、安全、稳定的网络办公环境!!!
IT服务,服务是根本,客户是上帝;我们提供快速响应、快速上门、快速排查,提供优质高效的服务!!!!

通达团队提供全国范围内的服务,服务形式包括远程协助、电话咨询、电子邮件咨询、传真咨询、问答平台的问题解决等。

宜兴地区提供上门服务:

  • 市区服务:宜城街道、城北街道(屺亭街道)、新街街道、新庄街道、环科园、渚桥开发区
  • 市郊服务:张渚镇、西渚镇、太华镇、徐舍镇、官林镇、杨巷镇、新建镇、和桥镇、高塍镇、万石镇、周铁镇、芳桥镇、丁蜀镇、湖父镇。
  • 联系电话:189-21-343434
  • 在线沟通: