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