Add message post with attachment test on record of another company than the
user company but for which the user has readonly access on. The goal is to
justify the sudo added in mail_thread:
- in '_message_post_process_attachments' method to create attachment linked
to the record (the creation of attachment linked to a record verify the
right to write to the record, so in readonly we need a sudo);
- in '_message_set_main_attachment_id' method to link the main attachment to
the record. Here we write directly on the record for which we only have
readonly access, so a sudo is needed. Here the attachment is already linked
to the model and we only "tag" it has main attachment (see odoo/odoo#30659)
Task-3178885 (Mail: fix 'readonly' post support)
X-original-commit: odoo/odoo@8486c7ee05
Part-of: odoo/odoo#114511
64 lines
3.2 KiB
XML
64 lines
3.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo noupdate="1">
|
|
|
|
<record id="mail_test_multi_company_rule" model="ir.rule">
|
|
<field name="name">Mail Test Multi Company</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_multi_company"/>
|
|
<field eval="True" name="global"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
|
</record>
|
|
|
|
<record id="mail_test_multi_company_read_rule" model="ir.rule">
|
|
<field name="name">MC Readonly Rule</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_multi_company_read"/>
|
|
<field name="perm_read" eval="False"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
|
<field name="global" eval="True"/>
|
|
</record>
|
|
|
|
<!-- TICKET-LIKE -->
|
|
<record id="mail_test_ticket_rule_portal" model="ir.rule">
|
|
<field name="name">Portal Mail Test Ticket</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_ticket"/>
|
|
<field name="domain_force">[('message_partner_ids', 'in', [user.partner_id.id])]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
|
</record>
|
|
|
|
<!-- MULTI COMPANY TICKET LIKE -->
|
|
<record id="mail_test_ticket_mc_rule" model="ir.rule">
|
|
<field name="name">Mail Test Ticket Multi Company</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_ticket_mc"/>
|
|
<field name="global" eval="True"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
|
</record>
|
|
<record id="mail_test_ticket_mc_rule_portal" model="ir.rule">
|
|
<field name="name">Portal Mail Test Ticket Multi Company</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_ticket_mc"/>
|
|
<field name="domain_force">[('message_partner_ids', 'in', [user.partner_id.id])]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
|
</record>
|
|
|
|
<!-- PROJECT-LIKE -->
|
|
<record id="mail_test_container_rule_portal" model="ir.rule">
|
|
<field name="name">Portal Mail Test Container</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_container"/>
|
|
<field name="domain_force">[('message_partner_ids', 'in', [user.partner_id.id])]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
|
</record>
|
|
|
|
<!-- MULTI COMPANY PROJECT LIKE -->
|
|
<record id="mail_test_container_mc_rule" model="ir.rule">
|
|
<field name="name">Mail Test Container Multi Company</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_container_mc"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
|
<field name="global" eval="True"/>
|
|
</record>
|
|
<record id="mail_test_container_mc_rule_portal" model="ir.rule">
|
|
<field name="name">Portal Mail Test Container Multi Company</field>
|
|
<field name="model_id" ref="test_mail.model_mail_test_container_mc"/>
|
|
<field name="domain_force">[('message_partner_ids', 'in', [user.partner_id.id])]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
|
</record>
|
|
|
|
</odoo>
|