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

        issue4080
        review343891009
diffstat:

 sale.xml           |   10 ++--
 sale_reporting.xml |  108 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_sale.py |    6 +-
 3 files changed, 115 insertions(+), 9 deletions(-)

diffs (218 lines):

diff -r 2f564089e3f6 -r 9e40baf43be1 sale.xml
--- a/sale.xml  Sat Apr 10 16:06:47 2021 +0200
+++ b/sale.xml  Sat Apr 10 23:46:24 2021 +0200
@@ -470,16 +470,16 @@
                 pyson="1"/>
         </record>
 
-        <record model="ir.rule.group" id="rule_group_sale">
-            <field name="name">User in company</field>
+        <record model="ir.rule.group" id="rule_group_sale_companies">
+            <field name="name">User in companies</field>
             <field name="model" search="[('model', '=', 'sale.sale')]"/>
             <field name="global_p" eval="True"/>
         </record>
-        <record model="ir.rule" id="rule_sale1">
+        <record model="ir.rule" id="rule_sale_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_sale"/>
+            <field name="rule_group" ref="rule_group_sale_companies"/>
         </record>
 
         <record model="ir.model.access" id="access_invoice_sale">
diff -r 2f564089e3f6 -r 9e40baf43be1 sale_reporting.xml
--- a/sale_reporting.xml        Sat Apr 10 16:06:47 2021 +0200
+++ b/sale_reporting.xml        Sat Apr 10 23:46:24 2021 +0200
@@ -68,6 +68,18 @@
             <field name="action" ref="act_reporting_customer"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_customer_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.customer')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_reporting_customer_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_customer_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_reporting_customer">
             <field name="model" search="[('model', '=', 
'sale.reporting.customer')]"/>
             <field name="perm_read" eval="False"/>
@@ -133,6 +145,18 @@
             <field name="action" ref="act_reporting_customer_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_customer_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.customer.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_customer_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_customer_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_customer_time_series">
             <field name="model" search="[('model', '=', 
'sale.reporting.customer.time_series')]"/>
             <field name="perm_read" eval="False"/>
@@ -195,6 +219,18 @@
             <field name="action" ref="act_reporting_product"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_product_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.product')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_reporting_product_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_product_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_reporting_product">
             <field name="model" search="[('model', '=', 
'sale.reporting.product')]"/>
             <field name="perm_read" eval="False"/>
@@ -259,6 +295,18 @@
             <field name="action" ref="act_reporting_product_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_product_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.product.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_product_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_product_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_product_time_series">
             <field name="model" search="[('model', '=', 
'sale.reporting.product.time_series')]"/>
             <field name="perm_read" eval="False"/>
@@ -327,6 +375,18 @@
             <field name="action" ref="act_reporting_category"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_category_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.category')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_reporting_category_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_category_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_reporting_category">
             <field name="model" search="[('model', '=', 
'sale.reporting.category')]"/>
             <field name="perm_read" eval="False"/>
@@ -392,6 +452,18 @@
             <field name="action" ref="act_reporting_category_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_category_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.category.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_category_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_category_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_category_time_series">
             <field name="model" search="[('model', '=', 
'sale.reporting.category.time_series')]"/>
             <field name="perm_read" eval="False"/>
@@ -434,6 +506,18 @@
             <field name="action" ref="act_reporting_region"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_region_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.region')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" id="rule_reporting_region_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_region_companies"/>
+        </record>
+
         <record model="ir.model.access" id="access_reporting_region">
             <field name="model" search="[('model', '=', 
'sale.reporting.region')]"/>
             <field name="perm_read" eval="False"/>
@@ -493,6 +577,18 @@
             <field name="act_window" ref="act_reporting_country_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_country_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.country.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_country_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_country_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_country_time_series">
             <field name="model" search="[('model', '=', 
'sale.reporting.country.time_series')]"/>
             <field name="perm_read" eval="False"/>
@@ -553,6 +649,18 @@
             <field name="act_window" 
ref="act_reporting_country_subdivision_time_series"/>
         </record>
 
+        <record model="ir.rule.group" 
id="rule_group_reporting_country_subdivision_time_series_companies">
+            <field name="name">User in companies</field>
+            <field name="model" search="[('model', '=', 
'sale.reporting.country.subdivision.time_series')]"/>
+            <field name="global_p" eval="True"/>
+        </record>
+        <record model="ir.rule" 
id="rule_reporting_country_subdivision_time_series_companies">
+            <field name="domain"
+                eval="[('company', 'in', Eval('companies', []))]"
+                pyson="1"/>
+            <field name="rule_group" 
ref="rule_group_reporting_country_subdivision_time_series_companies"/>
+        </record>
+
         <record model="ir.model.access" 
id="access_reporting_country_subdivision_time_series">
             <field name="model" search="[('model', '=', 
'sale.reporting.country.subdivision.time_series')]"/>
             <field name="perm_read" eval="False"/>
diff -r 2f564089e3f6 -r 9e40baf43be1 tests/test_sale.py
--- a/tests/test_sale.py        Sat Apr 10 16:06:47 2021 +0200
+++ b/tests/test_sale.py        Sat Apr 10 23:46:24 2021 +0200
@@ -12,13 +12,11 @@
 
 from trytond.modules.account.tests import create_chart
 from trytond.modules.company.tests import (
-    create_company, set_company, PartyCompanyCheckEraseMixin,
-    CompanyMultiValueTestMixin)
+    create_company, set_company, PartyCompanyCheckEraseMixin, CompanyTestMixin)
 
 
 class SaleTestCase(
-        PartyCompanyCheckEraseMixin, CompanyMultiValueTestMixin,
-        ModuleTestCase):
+        PartyCompanyCheckEraseMixin, CompanyTestMixin, ModuleTestCase):
     'Test Sale module'
     module = 'sale'
 

Reply via email to