Problem: the controller rely on record rules to select the payment.token to be displayed on the payment page. This works fine with portal user, but internal user will face client side performance issue as they can see all the token of the database Solution: Don't rely on record.rule in the controller. Use the domain from the portal user rule in the search. To make the search of token working for partners with more than 2 levels of hierachy, use child_of operator closes odoo/odoo#56326 X-original-commit: 3999e249ea9902e009f0366949886e14e3d7fdf4 Related: odoo/enterprise#12579 Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
32 lines
1.7 KiB
XML
32 lines
1.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo noupdate="1">
|
|
|
|
<record id="payment_transaction_user_rule" model="ir.rule">
|
|
<field name="name">Access own payment transaction only</field>
|
|
<field name="model_id" ref="payment.model_payment_transaction"/>
|
|
<field name="domain_force">['|',('partner_id','=',False), ('partner_id','=',user.partner_id.id) ]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_user')), (4, ref('base.group_portal')), (4, ref('base.group_public'))]"/>
|
|
</record>
|
|
<record id="payment_token_user_rule" model="ir.rule">
|
|
<field name="name">Access own payment tokens only</field>
|
|
<field name="model_id" ref="payment.model_payment_token"/>
|
|
<field name="domain_force">[('partner_id', 'child_of', user.partner_id.commercial_partner_id.id)]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_user')), (4, ref('base.group_portal')), (4, ref('base.group_public'))]"/>
|
|
</record>
|
|
|
|
<record id="payment_transaction_billing_rule" model="ir.rule">
|
|
<field name="name">Access every payment transaction</field>
|
|
<field name="model_id" ref="payment.model_payment_transaction"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('account.group_account_invoice'))]"/>
|
|
</record>
|
|
|
|
<record id="payment_token_salesman_rule" model="ir.rule">
|
|
<field name="name">Access every payment token</field>
|
|
<field name="model_id" ref="payment.model_payment_token"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('account.group_account_invoice'))]"/>
|
|
</record>
|
|
|
|
</odoo>
|