0

当项目/用户将他的任务放到包含不属于他的任务的目标阶段时,就会发生这种情况。

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

在此处输入图像描述

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

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.saas~6 重现该错误。

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

4

1 回答 1

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

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

于 2015-08-24T09:35:48.267 回答