我只希望我已分配任务的人员在项目模块中查看任务。我不希望项目的其他用户看到这个人的任务。
但是,目前拥有用户访问权限的任何用户都可以查看所有任务,即使他们没有被分配。
有解决方法吗?
答案 0 :(得分:17)
OpenERP有两种可分配给用户组的安全限制:
访问权限和记录规则也可以全局定义,而不将它们分配给特定组,在这种情况下,它们适用于每个人。记录规则有一个缺陷:全局规则可能不会被其他规则放宽(故意!),所以要小心使用。
在您的情况下,您似乎应该在项目用户组上定义一个额外的记录规则,该规则明确限制对项目任务的访问权限到您自己的任务(可能还有那些尚未分配的任务)。您需要在“安全规则”菜单中使用以下参数创建新条目:
project.task
See own tasks only
['|',('user_id','=',False),('user_id','=',user.id)]
[x]
[x]
[x]
[x]
Project / User
记录规则的domain
是一个标准的OpenERP域,它在您尝试执行操作的记录上进行评估,并且可以引用包含当前用户的user
变量数据(从技术上讲,当前用户为browse_record
)。有关search()
的完整说明,请在ORM methods列表中查找domain
。
如果要允许特殊用户(例如项目经理)查看系统中的所有任务,可以通过向Project Manager组添加另一个允许访问所有任务的规则来放宽此规则。有一个特殊的“域名过滤器”,意思是“允许所有”,有助于放宽另一个更严格的规则:[(1,'=',1)]
。
注意:查看现有的“记录规则”以查看他们首先要执行的操作,并确保在添加“记录规则”表单时阅读“记录规则”表单中的说明。请记住,如果您对访问权限和记录规则做错了,您可以随时使用admin
帐户解决问题,因为这些安全限制不适用于admin
(类似于{{ 1}}用户在Unix上。)
答案 1 :(得分:2)
注意:在OpenERP 7中,您必须修改或禁用名为
的defualt规则项目/任务:员工:公共,门户,员工或以下或 分配
让你的规则有效。
答案 2 :(得分:1)
创建新的安全规则,选择对象为" project.task " ,将域过滤器设为 [(" user_id"," =",user.id)] 。无需添加任何组,因此它将是全局的。多数民众赞成!
答案 3 :(得分:1)
我的问题有点复杂。我希望有一些用户只能执行分配的任务,而有些用户也可以看到其余的任务。
在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
现在,我可以决定谁是项目用户,谁可以看到项目的所有任务,谁是 worker ,谁只能看到分配给任务的任务他们。
答案 4 :(得分:0)
正如@ user1534055在openERP 7中已经指出的那样,它有点不同。
找到名为Project/Task: employees: public, portal, employee or following or assigned
编辑它并从规则定义中删除('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']),
'&',
,然后点击保存。
此任务仅对那些已被分配的人员可见。