申请记录规则后无法确认销售订单

时间:2016-03-26 09:34:43

标签: openerp openerp-7

在odoo 9中,我在模型mrp.production上添加了一条记录规则:

['|', ('user_id', '=', user.id), ('user_id', '=', False)]

这将仅向用户显示属于他们的MO。现在,当我试图确认销售订单,然后将为该销售订单中的行创建MO时,我收到的访问错误为:

The requested operation cannot be completed due to security restrictions. Please contact your system administrator.

(Document type: mrp.production, Operation: read) 

诊断更多我发现它是由于missing_ids引起的。看看this

在此之前,我在openerp 7中使用了相同的解决方案,并且在确认SO时它仍然完美无任何访问错误。

2 个答案:

答案 0 :(得分:0)

您正在尝试的是哪个用户?我认为您正在尝试使用管理员登录,并且您编写了安全规则,只有该记录的用户才能访问该规则。我认为这就是问题。

答案 1 :(得分:0)

最后我找到了这个问题的原因。

在opernep / addons / mrp / procurement.py中有行

production_obj.create(cr, SUPERUSER_ID, vals, context=dict(context, force_company=procurement.company_id.id))

使用SUPERUSER_ID从采购中创建生产订单。

我不知道为什么他们改变它以使用SUPERUSER_ID。可能是为了使非mrp用户或外部用户能够创建mrp命令,即使他们没有权限也是如此。顺便说一下,我没有这样的要求,我用uid替换了这个SUPERUSER_ID解决了我的问题。