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

时间:2018-05-31 08:38:38

标签: record odoo odoo-10 rules

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

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

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

  • 对象:project.task

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

  • 访问控制
  • 记录规则

在您的情况下,您只需要复制其他类似案例的设置。例如"销售经理"和"用户:仅拥有自己的文件"出售。

  1. 访问控制。在您的案例project.tasks

    中创建两个组并授予模型权限

    access rights

  2. <强>规则即可。仅为&#34;用户:仅自己的文档&#34;添加规则,在您的情况下&#34;项目/用户&#34;:

    rule

答案 1 :(得分:0)

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

  

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

     

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

结果表明,全局规则是减法,组规则是加法。如果您全局应用,则只有满足您的域user_id = user.id的用户才是可读/可写的。但是,如果您仅适用于组,则不会限制访问权限,因为它是可加性的,并且用户被授予其他位置的访问权限。

我在类似情况下所做的就是应用全局规则,以便 任务只能由其受让人看到。然后将组规则应用于经理,以便经理可以查看所有任务。

希望这对您有帮助