我只希望我分配任务的人看到项目模块中的任务。我不希望项目的其他用户看到这个人的任务。
然而,目前任何具有用户访问权限的用户都可以查看所有任务,即使他们没有被分配。
有解决办法吗?
我只希望我分配任务的人看到项目模块中的任务。我不希望项目的其他用户看到这个人的任务。
然而,目前任何具有用户访问权限的用户都可以查看所有任务,即使他们没有被分配。
有解决办法吗?
OpenERP/Odoo 有两种可以分配给用户组的安全限制:
访问权限和记录规则也可以在全局范围内定义,而无需将它们分配给特定组,在这种情况下它们适用于每个人。记录规则有一个陷阱:全局规则可能不会被其他规则放松(故意!),因此请谨慎使用。
在您的情况下,您似乎应该在项目用户组上定义一个额外的记录规则,明确将项目任务的访问权限限制为您自己的任务(可能还有那些尚未分配的任务)。您需要使用以下参数在“安全规则”菜单中创建一个新条目:
project.task
See own tasks only
['|',('user_id','=',False),('user_id','=',user.id)]
[x]
[x]
[x]
[x]
Project / User
记录规则是一个标准的domain
OpenERP/Odoo 域,它在您尝试执行操作的记录上进行评估,并且可以引用user
包含当前用户数据的变量(技术上,browse_record
当前用户的 a)。该文档有一个描述domain
。
如果您希望允许特殊用户(例如项目经理)查看系统中的所有任务,您可以通过向项目经理组添加另一个允许访问所有任务的规则来放松此规则。有一个特殊的“域过滤器”,意思是“允许所有”,有助于放宽另一个更严格的规则:[(1,'=',1)]
.
注意 1:查看现有的记录规则以了解它们首先在做什么,并确保在添加您的规则时阅读记录规则表单上的说明。要记住的一件重要事情是特定于组的规则与OR
运算符相结合。因此,如果您添加我上面描述的规则,您可能看不到任何限制效果,因为其他特定于组的规则仍在授予访问权限。您可能必须禁用它们、编辑它们或更改它们应用到的用户组,以获得您想要的确切效果。
注意 2:请记住,如果您对访问权限和记录规则做错了什么,您可以随时修复admin
帐户的混乱,因为这些安全限制不适用于admin
(类似于root
Unix 上的用户)。
注意:在 OpenERP 7 中,您必须修改或禁用名为的默认规则
项目/任务:员工:公共、门户、员工或关注或分配
让您的规则发挥作用。
创建一个新的安全规则,选择对象为“ project.task ”,将域过滤器设置为[("user_id","=",user.id)]。无需添加任何组,因此它将是全局的。而已!
我的问题有点复杂。我想让用户只能看到他们分配的任务,而有些用户也可以看到其余的。
在 Odoo 11 中,我发现标准项目用户继承Employees \ Employee
,而后者又具有Project/Task: employees: follow required for follower-only projects
让用户查看其他任务的规则。
我做了什么:
创建一个新组->重复Project / Users
从odony的回答中实施了规则->['|',('user_id','=',False),('user_id','=',user.id)]
Project/Task: employees: follow required for follower-only projects
从中删除记录规则Employees / Employee
并将其添加到Project / Users
现在我可以决定谁是项目用户,谁可以看到项目的所有任务,谁是工人,谁只能看到分配给他们的任务。
正如@user1534055 在 openERP 7 中已经指出的那样,它有点不同。
找到名为的规则Project/Task: employees: public, portal, employee or following or assigned
编辑它并('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']),
'&',
从规则定义中删除,然后点击保存。
在此之后任务将仅对已分配的人员可见。