为什么记录规则没有按预期工作Odoo 10?

问题描述 投票:2回答:2

我正在使用odoo 10.我想限制项目用户只能查看或编辑他们自己的任务。项目经理可以为他们分配任务,并可以查看所有任务。这意味着项目经理应具有完全权限。

我在论坛上尝试了很多解决方案,但没有一个能按预期工作。任何帮助都非常感谢。

我创建了一条新的记录规则:

  • 对象:project.task
  • 域名过滤器:[('user_id','=',user.id)]

当我将其保存为全局时,其任务仅由其受让人查看,但此规则也适用于项目经理。项目经理现在也无法为他的团队查看或创建任务。但我需要项目经理拥有完整的权限。

如果我选择组作为项目/用户:在这种情况下,效果消失,所有用户都能看到所有任务。

我还使用域过滤器[(1, '=', 1)]为Project / Manager创建了一个记录规则。但仍然没有达到我要求的结果。

record odoo odoo-10 rules
2个回答
0
投票

首先,您需要仔细阅读有关Odoo Security的文档。基本上,Odoo提供了两种主要的数据驱动机制来管理或限制对数据的访问。

  • 访问控制
  • 记录规则

在您的情况下,您只需要从其他类似的情况复制设置。例如,“Sales Manager”和“User:Own Documents Only”用于销售。

  1. 访问控制。创建两个组并授予模型权限,在您的情况下为project.tasks
  2. 规则。在“项目/用户”的情况下,仅为“用户:自己的文档”添加规则:

0
投票

仔细阅读。 https://www.odoo.com/documentation/12.0/reference/security.html

全局规则是减法的,它们必须匹配才能访问记录

组规则是附加的,如果它们中的任何一个匹配(并且所有全局规则都匹配),则可以访问该记录

事实证明全局规则是减法的,组规则是相加的。如果您全局应用,那么只有满足您的域user_id = user.id的用户才是可读/可写的。但是,如果您仅应用于组,则不会限制访问权限,因为它是附加的,并且用户被授予其他地方的访问权限。

我为类似场景所做的是应用全局规则,以便任务仅由其受让人看到。然后将组规则应用于经理,以便经理可以查看所有任务。

希望这可以帮到你

© www.soinside.com 2019 - 2024. All rights reserved.