在odoo 9中,我在模型mrp.production上添加了一个记录规则如下:
['|', ('user_id', '=', user.id), ('user_id', '=', False)]
这将只向用户展示属于他们的MOs。现在,当我试图确认销售订单,然后为该销售订单中的行创建一个MO时,我将得到一个访问错误,如下所示:
The requested operation cannot be completed due to security restrictions. Please contact your system administrator.
(Document type: mrp.production, Operation: read)
诊断得更多,我发现是由于missing_ids引起的。看看这。
在此之前,我在openerp 7中使用了相同的解决方案,并且在确认时,它仍然工作得很完美,没有任何访问错误。
发布于 2016-03-27 12:24:39
最后,我找到了这个问题的原因。
在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,解决了我的问题。
发布于 2016-03-27 07:26:30
您正在尝试哪个用户?我认为您正在尝试使用admin登录,并编写只有该记录的用户才能访问的安全规则。我想这就是问题所在。
https://stackoverflow.com/questions/36233736
复制相似问题