我正在使用odoo 10.我想限制项目用户只能查看或编辑他们自己的任务。项目经理可以为他们分配任务,并可以查看所有任务。这意味着项目经理应具有完全权限。
我在论坛上尝试了很多解决方案,但没有一个能按预期工作。任何帮助都非常感谢。
我创建了一条新的记录规则:
project.task
[('user_id','=',user.id)]
当我将其保存为全局时,其任务仅由其受让人查看,但此规则也适用于项目经理。项目经理现在也无法为他的团队查看或创建任务。但我需要项目经理拥有完整的权限。
如果我选择组作为项目/用户:在这种情况下,效果消失,所有用户都能看到所有任务。
我还使用域过滤器[(1, '=', 1)]
为Project / Manager创建了一个记录规则。但仍然没有达到我要求的结果。
首先,您需要仔细阅读有关Odoo Security的文档。基本上,Odoo提供了两种主要的数据驱动机制来管理或限制对数据的访问。
在您的情况下,您只需要从其他类似的情况复制设置。例如,“Sales Manager”和“User:Own Documents Only”用于销售。
project.tasks
仔细阅读。 https://www.odoo.com/documentation/12.0/reference/security.html
全局规则是减法的,它们必须匹配才能访问记录
组规则是附加的,如果它们中的任何一个匹配(并且所有全局规则都匹配),则可以访问该记录
事实证明全局规则是减法的,组规则是相加的。如果您全局应用,那么只有满足您的域user_id = user.id的用户才是可读/可写的。但是,如果您仅应用于组,则不会限制访问权限,因为它是附加的,并且用户被授予其他地方的访问权限。
我为类似场景所做的是应用全局规则,以便任务仅由其受让人看到。然后将组规则应用于经理,以便经理可以查看所有任务。
希望这可以帮到你