Files
odoo_source/addons/payment/security/payment_security.xml
T
Horacio Tellez 2b1e2abda3 [IMP] payment,*: restrict access to payment.transaction records
Since 15.0, it is no longer possible to have partnerless transactions.
Nonetheless, migrated databases could contain transactions without a
`partner_id` set.
This commit cleans existing rules to make those transactions are not
accessible to unwanted users.

We take the opportunity to clean the security of payment.transaction
records globally.
Now only admin and accounting users have access to payment.transaction
records. The code of different applications has been adapted accordingly.

Task - 3102824

closes odoo/odoo#113515

Related: odoo/upgrade#4564
Related: odoo/enterprise#40939
Signed-off-by: Masereel Pierre <pim@odoo.com>
2023-05-15 15:07:13 +02:00

46 lines
1.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<!-- Providers -->
<record id="payment_provider_company_rule" model="ir.rule">
<field name="name">Access providers in own companies only</field>
<field name="model_id" ref="payment.model_payment_provider"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<!-- Transactions -->
<record id="transaction_company_rule" model="ir.rule">
<field name="name">Access transactions in own companies only</field>
<field name="model_id" ref="payment.model_payment_transaction"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<!-- Tokens -->
<record id="payment_token_user_rule" model="ir.rule">
<field name="name">Users can access only their own tokens</field>
<field name="model_id" ref="payment.model_payment_token"/>
<field name="domain_force">[('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_company_rule" model="ir.rule">
<field name="name">Access tokens in own companies only</field>
<field name="model_id" ref="payment.model_payment_token"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<!-- Wizards -->
<record id="payment_capture_wizard_rule" model="ir.rule">
<field name="name">Payment Capture Wizard</field>
<field name="model_id" ref="model_payment_capture_wizard"/>
<field name="domain_force">[('create_uid', '=', user.id)]</field>
</record>
</odoo>