changeset cbd95ac133f8 in modules/stock:default
details: https://hg.tryton.org/modules/stock?cmd=changeset&node=cbd95ac133f8
description:
        Check rule only if _check_access is set and enforce companies rule

        issue4080
        review343891009
diffstat:

 inventory.xml              |  12 ++++++++++
 move.xml                   |  10 ++++----
 period.xml                 |  12 ++++++++++
 product.xml                |  32 ++++++++++++++++++--------
 shipment.xml               |  54 ++++++++++++++++++++++++---------------------
 stock_reporting_margin.xml |  48 ++++++++++++++++++++++++++++++++++++++++
 tests/test_stock.py        |   6 +---
 7 files changed, 130 insertions(+), 44 deletions(-)

diffs (328 lines):

diff -r 1f805acff803 -r cbd95ac133f8 inventory.xml
--- a/inventory.xml     Fri Apr 09 10:52:03 2021 +0200
+++ b/inventory.xml     Sat Apr 10 23:46:24 2021 +0200
@@ -84,6 +84,18 @@
             <field name="action" ref="act_inventory_line_relate"/>
         </record>
 
+        <record model="ir.rule.group" id="rule_group_inventory_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 'stock.inventory')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_inventory_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" ref="rule_group_inventory_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_inventory">
             <field name="model" search="[('model', '=', 'stock.inventory')]"/>
             <field name="perm_read" eval="False"/>
diff -r 1f805acff803 -r cbd95ac133f8 move.xml
--- a/move.xml  Fri Apr 09 10:52:03 2021 +0200
+++ b/move.xml  Sat Apr 10 23:46:24 2021 +0200
@@ -94,16 +94,16 @@
             <field name="group" ref="group_stock_admin"/>
         </record>
 
-        <record model="ir.rule.group" id="rule_group_move">
-            <field name="name">User in company</field>
+        <record model="ir.rule.group" id="rule_group_move_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 'stock.move')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_move">
+        <record model="ir.rule" id="rule_move_companies">
             <field name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" ref="rule_group_move"/>
+            <field name="rule_group" ref="rule_group_move_companies"/>
         </record>
 
         <record model="ir.model.access" id="access_move">
diff -r 1f805acff803 -r cbd95ac133f8 period.xml
--- a/period.xml        Fri Apr 09 10:52:03 2021 +0200
+++ b/period.xml        Sat Apr 10 23:46:24 2021 +0200
@@ -34,6 +34,18 @@
             sequence="30"
             id="menu_period_list"/>
 
+        <record model="ir.rule.group" id="rule_group_period_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 'stock.period')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_period_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" ref="rule_group_period_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_period">
             <field name="model" search="[('model', '=', 'stock.period')]"/>
             <field name="perm_read" eval="False"/>
diff -r 1f805acff803 -r cbd95ac133f8 product.xml
--- a/product.xml       Fri Apr 09 10:52:03 2021 +0200
+++ b/product.xml       Sat Apr 10 23:46:24 2021 +0200
@@ -77,6 +77,18 @@
             <field name="action" ref="act_product_cost_price_revision"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_product_cost_price_revision_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'product.cost_price.revision')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_product_cost_price_revision_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_product_cost_price_revision_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_product_cost_price_revision">
             <field name="model" search="[('model', '=', 
'product.cost_price.revision')]"/>
             <field name="perm_read" eval="True"/>
@@ -269,17 +281,17 @@
             <field name="act_window" ref="act_product_quantities_warehouse"/>
         </record>
 
-        <record model="ir.rule.group" 
id="rule_group_product_quantities_warehouse">
-            <field name="name">User in company</field>
+        <record model="ir.rule.group" 
id="rule_group_product_quantities_warehouse_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.product_quantities_warehouse')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_product_quantities_warehouse">
+        <record model="ir.rule" 
id="rule_product_quantities_warehouse_companies">
             <field
                 name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" 
ref="rule_group_product_quantities_warehouse"/>
+            <field name="rule_group" 
ref="rule_group_product_quantities_warehouse_companies"/>
         </record>
 
         <record model="ir.model.access" 
id="access_product_quantities_warehouse">
@@ -370,17 +382,17 @@
             <field name="group" ref="group_stock"/>
         </record>
 
-        <record model="ir.rule.group" 
id="rule_group_product_quantities_warehouse_move">
-            <field name="name">User in company</field>
+        <record model="ir.rule.group" 
id="rule_group_product_quantities_warehouse_move_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.product_quantities_warehouse.move')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_product_quantities_warehouse_move">
+        <record model="ir.rule" 
id="rule_product_quantities_warehouse_move_companies">
             <field
                 name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" 
ref="rule_group_product_quantities_warehouse_move"/>
+            <field name="rule_group" 
ref="rule_group_product_quantities_warehouse_move_companies"/>
         </record>
 
         <record model="ir.model.access" 
id="access_product_quantities_warehouse_move">
diff -r 1f805acff803 -r cbd95ac133f8 shipment.xml
--- a/shipment.xml      Fri Apr 09 10:52:03 2021 +0200
+++ b/shipment.xml      Sat Apr 10 23:46:24 2021 +0200
@@ -992,60 +992,64 @@
             <field name="group" ref="group_stock"/>
         </record>
 
-        <record model="ir.rule.group" id="rule_group_shipment_in">
-            <field name="name">User in company</field>
+        <record model="ir.rule.group" id="rule_group_shipment_in_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.shipment.in')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_shipment_in">
+        <record model="ir.rule" id="rule_shipment_in_companies">
             <field name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" ref="rule_group_shipment_in"/>
+            <field name="rule_group" ref="rule_group_shipment_in_companies"/>
         </record>
-        <record model="ir.rule.group" id="rule_group_shipment_in_return">
-            <field name="name">User in company</field>
+
+        <record model="ir.rule.group" 
id="rule_group_shipment_in_return_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.shipment.in.return')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_shipment_in_return">
+        <record model="ir.rule" id="rule_shipment_in_return_companies">
             <field name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" ref="rule_group_shipment_in_return"/>
+            <field name="rule_group" 
ref="rule_group_shipment_in_return_companies"/>
         </record>
-        <record model="ir.rule.group" id="rule_group_shipment_out">
-            <field name="name">User in company</field>
+
+        <record model="ir.rule.group" id="rule_group_shipment_out_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.shipment.out')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_shipment_out">
+        <record model="ir.rule" id="rule_shipment_out_companies">
             <field name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" ref="rule_group_shipment_out"/>
+            <field name="rule_group" ref="rule_group_shipment_out_companies"/>
         </record>
-        <record model="ir.rule.group" id="rule_group_shipment_out_return">
-            <field name="name">User in company</field>
+
+        <record model="ir.rule.group" 
id="rule_group_shipment_out_return_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.shipment.out.return')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_shipment_out_return">
+        <record model="ir.rule" id="rule_shipment_out_return_companies">
             <field name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" ref="rule_group_shipment_out_return"/>
+            <field name="rule_group" 
ref="rule_group_shipment_out_return_companies"/>
         </record>
-        <record model="ir.rule.group" id="rule_group_shipment_internal">
-            <field name="name">User in company</field>
+
+        <record model="ir.rule.group" 
id="rule_group_shipment_internal_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 
'stock.shipment.internal')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_shipment_internal">
+        <record model="ir.rule" id="rule_shipment_internal_companies">
             <field name="domain"
-                eval="[('company', '=', Eval('user', {}).get('company', 
None))]"
+                eval="[('company', 'in', Eval('companies', []))]"
                 pyson="1"/>
-            <field name="rule_group" ref="rule_group_shipment_internal"/>
+            <field name="rule_group" 
ref="rule_group_shipment_internal_companies"/>
         </record>
 
         <record model="ir.ui.view" id="shipment_assign_partial_view_form">
diff -r 1f805acff803 -r cbd95ac133f8 stock_reporting_margin.xml
--- a/stock_reporting_margin.xml        Fri Apr 09 10:52:03 2021 +0200
+++ b/stock_reporting_margin.xml        Sat Apr 10 23:46:24 2021 +0200
@@ -77,6 +77,18 @@
             <field name="action" ref="act_reporting_margin_product"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_margin_product_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'stock.reporting.margin.product')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_reporting_margin_product_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_margin_product_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_reporting_margin_product">
             <field name="model" search="[('model', '=', 
'stock.reporting.margin.product')]"/>
             <field name="perm_read" eval="False"/>
@@ -153,6 +165,18 @@
             <field name="action" 
ref="act_reporting_margin_product_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_margin_product_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'stock.reporting.margin.product.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_margin_product_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_margin_product_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_margin_product_time_series">
             <field name="model" search="[('model', '=', 
'stock.reporting.margin.product.time_series')]"/>
             <field name="perm_read" eval="False"/>
@@ -270,6 +294,18 @@
             <field name="action" ref="act_reporting_margin_category"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_margin_category_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'stock.reporting.margin.category')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_reporting_margin_category_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_margin_category_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_reporting_margin_category">
             <field name="model" search="[('model', '=', 
'stock.reporting.margin.category')]"/>
             <field name="perm_read" eval="False"/>
@@ -346,6 +382,18 @@
             <field name="action" 
ref="act_reporting_margin_category_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_margin_category_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'stock.reporting.margin.category.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_margin_category_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_margin_category_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_margin_category_time_series">
             <field name="model" search="[('model', '=', 
'stock.reporting.margin.category.time_series')]"/>
             <field name="perm_read" eval="False"/>
diff -r 1f805acff803 -r cbd95ac133f8 tests/test_stock.py
--- a/tests/test_stock.py       Fri Apr 09 10:52:03 2021 +0200
+++ b/tests/test_stock.py       Sat Apr 10 23:46:24 2021 +0200
@@ -17,13 +17,11 @@
 from trytond.pool import Pool
 
 from trytond.modules.company.tests import (
-    create_company, set_company, PartyCompanyCheckEraseMixin,
-    CompanyMultiValueTestMixin)
+    create_company, set_company, PartyCompanyCheckEraseMixin, CompanyTestMixin)
 
 
 class StockTestCase(
-        PartyCompanyCheckEraseMixin, CompanyMultiValueTestMixin,
-        ModuleTestCase):
+        PartyCompanyCheckEraseMixin, CompanyTestMixin, ModuleTestCase):
     'Test Stock module'
     module = 'stock'
     longMessage = True

Reply via email to