Check rule only if _check_access is set and enforce companies rule

issue4080
review343891009
This commit is contained in:
Cédric Krier
2021-04-10 23:46:23 +02:00
parent f814d45066
commit abd0be2ded
3 changed files with 29 additions and 18 deletions
+5 -5
View File
@@ -94,17 +94,17 @@ this repository contains the full copyright notices and license terms. -->
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.rule.group" id="rule_group_invoice_sequence">
<field name="name">User in company</field>
<record model="ir.rule.group" id="rule_group_invoice_sequence_companies">
<field name="name">User in companies</field>
<field name="model"
search="[('model', '=', 'account.fiscalyear.invoice_sequence')]"/>
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_invoice_sequence1">
<record model="ir.rule" id="rule_invoice_sequence_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_invoice_sequence"/>
<field name="rule_group" ref="rule_group_invoice_sequence_companies"/>
</record>
</data>
+22 -10
View File
@@ -347,6 +347,18 @@ this repository contains the full copyright notices and license terms. -->
sequence="50"
id="menu_payment_method_form"/>
<record model="ir.rule.group" id="rule_group_payment_method_companies">
<field name="name">User in companies</field>
<field name="model" search="[('model', '=', 'account.invoice.payment.method')]"/>
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_payment_method_companies">
<field name="domain"
eval="[('company', 'in', Eval('companies', []))]"
pyson="1"/>
<field name="rule_group" ref="rule_group_payment_method_companies"/>
</record>
<record model="ir.model.access" id="access_payment_method">
<field name="model" search="[('model', '=', 'account.invoice.payment.method')]"/>
<field name="perm_read" eval="True"/>
@@ -380,28 +392,28 @@ this repository contains the full copyright notices and license terms. -->
<field name="action" ref="credit"/>
</record>
<record model="ir.rule.group" id="rule_group_invoice">
<field name="name">User in company</field>
<record model="ir.rule.group" id="rule_group_invoice_companies">
<field name="name">User in companies</field>
<field name="model" search="[('model', '=', 'account.invoice')]"/>
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_invoice1">
<record model="ir.rule" id="rule_invoice_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_invoice"/>
<field name="rule_group" ref="rule_group_invoice_companies"/>
</record>
<record model="ir.rule.group" id="rule_group_invoice_line">
<field name="name">User in company</field>
<record model="ir.rule.group" id="rule_group_invoice_line_companies">
<field name="name">User in companies</field>
<field name="model" search="[('model', '=', 'account.invoice.line')]"/>
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_invoice_line1">
<record model="ir.rule" id="rule_invoice_line_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_invoice_line"/>
<field name="rule_group" ref="rule_group_invoice_line_companies"/>
</record>
</data>
</tryton>
+2 -3
View File
@@ -11,7 +11,7 @@ from trytond.tests.test_tryton import doctest_checker
from trytond.pool import Pool
from trytond.modules.company.tests import (
PartyCompanyCheckEraseMixin, CompanyMultiValueTestMixin)
PartyCompanyCheckEraseMixin, CompanyTestMixin)
from trytond.modules.currency.tests import create_currency
from ..exceptions import PaymentTermValidationError
@@ -41,8 +41,7 @@ def set_invoice_sequences(fiscalyear):
class AccountInvoiceTestCase(
PartyCompanyCheckEraseMixin, CompanyMultiValueTestMixin,
ModuleTestCase):
PartyCompanyCheckEraseMixin, CompanyTestMixin, ModuleTestCase):
'Test AccountInvoice module'
module = 'account_invoice'