odoo/odoo#66953
Created by fw-bot
Merged
at b29003bbf89f6eb397e8724b464ff47f0dcbe2c9
Statuses:
- legal/cla: Contributor License Agreement check
- ci/runbot: Odoo Test Suite
- ci/template: Install databases to use to test upgrade in master and ensure that upgrades works with current master.
- ci/style: Optional style check. Ignore it only if strictly necessary.
- ci/security: Required security check. Can only be ignored by security team.
- label
- odoo-dev:saas-14.2-14.0-on-time-rate-product-other-company-than-po-dle-pqJO-fw
- head
- a5d25c5f06f3bfeb813f3fed40292b8c43913af7
- merged
- 4 years ago by Security, Denis Ledoux (dle)
odoo/odoo | |
---|---|
14.0 | #66936 |
saas-14.1 | #66951 |
saas-14.2 | #66953 |
15.0 | |
16.0 | |
17.0 | |
18.0 | |
saas-18.1 | |
saas-18.2 | |
saas-18.3 | |
master | #66956 |
[FW][FIX] purchase_stock: `on_time_rate` product other company than PO
- User in company A,
- Purchase order in company A,
- Product in company B
File "/home/odoo/src/odoo/14.0/addons/purchase_stock/models/res_partner.py", line 23, in _compute_on_time_rate
]).filtered(lambda l: l.product_id.product_tmpl_id.type != 'service' and l.order_id.state in ['done', 'purchase'])
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5279, in filtered
return self.browse([rec.id for rec in self if func(rec)])
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5279, in <listcomp>
return self.browse([rec.id for rec in self if func(rec)])
File "/home/odoo/src/odoo/14.0/addons/purchase_stock/models/res_partner.py", line 23, in <lambda>
]).filtered(lambda l: l.product_id.product_tmpl_id.type != 'service' and l.order_id.state in ['done', 'purchase'])
File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 2483, in __get__
return super().__get__(records, owner)
File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 998, in __get__
record._fetch_field(self)
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 3072, in _fetch_field
self._read(fnames)
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 3183, in _read
raise self.env['ir.rule']._make_access_error('read', forbidden)
odoo.exceptions.AccessError: Due to security restrictions, you are not allowed to access 'Product' (product.product) records.
If you do not share products between companies
(if the multi-company record rule for product.template
is enabled)
then you are not supposed to use a product from another company in a purchase order.
However, this is possible to land in the case if you enable
the multi-company record rule after you created some purchase orders,
using products from other companies.
Adding sudo()
just to get the type of product
doesn't cost much to support that case
upg-8277
Forward-Port-Of: #66936