diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2018-03-05 10:44:07 +0100 |
|---|---|---|
| committer | Nicolas Martinelli <nim-odoo@users.noreply.github.com> | 2018-03-06 10:02:44 +0100 |
| commit | 037cfc9f67f86bc05aa9b239d8e479fd07ebaff9 (patch) | |
| tree | 29d5912525cfdb5970f609cd684da14af78f31ac | |
| parent | b466b3bc608b54d96ca0242b4d9c6176b76d88b6 (diff) | |
[FIX] delivery: products not shared
- Define 2 companies A and B. Delivery methods are linked to products in
company A
- Deactivate 'Share product to all companies'
- Create a user B in Company B only
- As user B, create a SO and open the drop-down list for delivery
methods
An access error is raised.
Delivery methods should follow the same record rules than the products
they are linked to.
opw-1815490
| -rw-r--r-- | addons/delivery/__manifest__.py | 1 | ||||
| -rw-r--r-- | addons/delivery/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/delivery/models/base_config_settings.py | 17 | ||||
| -rw-r--r-- | addons/delivery/security/delivery_security.xml | 12 |
4 files changed, 31 insertions, 0 deletions
diff --git a/addons/delivery/__manifest__.py b/addons/delivery/__manifest__.py index e91e09fef5f..462a3d7bddb 100644 --- a/addons/delivery/__manifest__.py +++ b/addons/delivery/__manifest__.py @@ -16,6 +16,7 @@ invoices from picking, the system is able to add and compute the shipping line. 'depends': ['sale_stock'], 'data': [ 'security/ir.model.access.csv', + 'security/delivery_security.xml', 'views/delivery_view.xml', 'views/partner_view.xml', 'views/product_template_view.xml', diff --git a/addons/delivery/models/__init__.py b/addons/delivery/models/__init__.py index 33fb6434d71..140f3e93204 100644 --- a/addons/delivery/models/__init__.py +++ b/addons/delivery/models/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import base_config_settings import delivery_carrier import delivery_price_rule import product_template diff --git a/addons/delivery/models/base_config_settings.py b/addons/delivery/models/base_config_settings.py new file mode 100644 index 00000000000..2ab67cbebdd --- /dev/null +++ b/addons/delivery/models/base_config_settings.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models + + +class BaseConfigSettings(models.TransientModel): + _inherit = 'base.config.settings' + + @api.multi + def set_auth_company_share_product(self): + self.ensure_one() + res = super(BaseConfigSettings, self).set_auth_company_share_product() + delivery_rule = self.env.ref('delivery.delivery_comp_rule', False) + if delivery_rule: + delivery_rule.write({'active': not bool(self.company_share_product)}) + return res diff --git a/addons/delivery/security/delivery_security.xml b/addons/delivery/security/delivery_security.xml new file mode 100644 index 00000000000..ae588bc245c --- /dev/null +++ b/addons/delivery/security/delivery_security.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> +<data noupdate="1"> + <record id="delivery_comp_rule" model="ir.rule"> + <field name="name">Delivery multi-company</field> + <field name="model_id" ref="model_delivery_carrier"/> + <field name="global" eval="True"/> + <field name="domain_force"> ['|',('product_id.company_id','=',user.company_id.id),('product_id.company_id','=',False)]</field> + <field name="active" eval="False"/> + </record> +</data> +</odoo> |
