看板视图中的任务:当Project / User仅被授权修改自己的任务时,卡重新排列错误

时间:2015-08-19 12:17:44

标签: openerp odoo openerp-7 kanban

当项目/用户将其任务下放到包含非他拥有的任务的目标阶段时,就会发生这种情况。

显然,Odoo通过project.task.sequence记住阶段内任务的堆栈顺序,并在项目/用户完成放置操作时更新所有任务卡的sequence字段。但由于项目/用户无权修改其他用户的任务(project.task对象类型)。 Odoo服务器引发了如下所示的异常。

enter image description here

访问限制是通过以下项目/用户记录规则实现的:

Name: Project/Task: only assignee and creator can modify task
Object: Task (project.task)
Apply for: Write
Domain filter: ['|',('user_id','=',user.id),('create_uid','=',user.id)] 
Group name: Project/User

这个问题有解决办法吗?

在撰写本文时,错误可以在http://demo.odoo.com当前正在运行的Odoo版本8.asas~6上重现。

请注意,默认情况下,人力资源/员工可以修改未分配给他们的任务,因此记录规则“项目/任务:员工:公共,门户,员工或(关注者和关注者)的写入和删除访问权限)首先必须删除“

1 个答案:

答案 0 :(得分:0)

无法想出更好的解决方案,所以我只是做了以下黑客攻击:

ODOO_ROOT / models.py 文件中添加_write openerp.models.BaseModel函数的顶部:

def _write(self, cr, user, ids, vals, context=None):
    # use admin if just writing to 'sequence' field of model 'project.task'
    if self._name == 'project.task' and vals.keys() == ['sequence']:
        user = SUPERUSER_ID

这可能没问题,因为序列字段并不是一个非常重要的字段,可以防止非所有者随意修改。