From d0cd86bd14a9b1a2285bdce84be9c8dfd0b974a3 Mon Sep 17 00:00:00 2001 From: "Martin Trigaux (mat)" Date: Fri, 8 Mar 2024 15:01:19 +0100 Subject: [PATCH] [FIX] mail: harmonize computed field Avoid accessing inconsistent data based on the user closes odoo/odoo#157098 Signed-off-by: Martin Trigaux (mat) --- addons/mail/models/mail_composer_mixin.py | 2 +- addons/mail/wizard/mail_compose_message.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/mail/models/mail_composer_mixin.py b/addons/mail/models/mail_composer_mixin.py index 91375fb1271..d34a08b2642 100644 --- a/addons/mail/models/mail_composer_mixin.py +++ b/addons/mail/models/mail_composer_mixin.py @@ -31,7 +31,7 @@ class MailComposerMixin(models.AbstractModel): ) template_id = fields.Many2one('mail.template', 'Mail Template', domain="[('model', '=', render_model)]") # Language: override mail.render.mixin field, copy template value - lang = fields.Char(compute='_compute_lang', precompute=True, readonly=False, store=True) + lang = fields.Char(compute='_compute_lang', precompute=True, readonly=False, store=True, compute_sudo=False) # Access is_mail_template_editor = fields.Boolean('Is Editor', compute='_compute_is_mail_template_editor') can_edit_body = fields.Boolean('Can Edit Body', compute='_compute_can_edit_body') diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 5e48ffccefb..579357a9c0e 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -95,17 +95,17 @@ class MailComposer(models.TransientModel): email_layout_xmlid = fields.Char( 'Email Notification Layout', compute='_compute_email_layout_xmlid', readonly=False, store=True, - copy=False) + copy=False, compute_sudo=False) email_add_signature = fields.Boolean( 'Add signature', compute='_compute_email_add_signature', readonly=False, store=True) # origin email_from = fields.Char( - 'From', compute='_compute_authorship', readonly=False, store=True, + 'From', compute='_compute_authorship', readonly=False, store=True, compute_sudo=False, help="Email address of the sender. This field is set when no matching partner is found and replaces the author_id field in the chatter.") author_id = fields.Many2one( 'res.partner', string='Author', - compute='_compute_authorship', readonly=False, store=True, + compute='_compute_authorship', readonly=False, store=True, compute_sudo=False, help="Author of the message. If not set, email_from may hold an email address that did not match any partner.") # composition composition_mode = fields.Selection( @@ -145,7 +145,7 @@ class MailComposer(models.TransientModel): mail_activity_type_id = fields.Many2one('mail.activity.type', 'Mail Activity Type', ondelete='set null') # destination reply_to = fields.Char( - 'Reply To', compute='_compute_reply_to', readonly=False, store=True, + 'Reply To', compute='_compute_reply_to', readonly=False, store=True, compute_sudo=False, help='Reply email address. Setting the reply_to bypasses the automatic thread creation.') reply_to_force_new = fields.Boolean( string='Considers answers as new thread', @@ -164,7 +164,7 @@ class MailComposer(models.TransientModel): # sending auto_delete = fields.Boolean( 'Delete Emails', - compute="_compute_auto_delete", readonly=False, store=True, + compute="_compute_auto_delete", readonly=False, store=True, compute_sudo=False, help='This option permanently removes any track of email after it\'s been sent, including from the Technical menu in the Settings, in order to preserve storage space of your Odoo database.') auto_delete_keep_log = fields.Boolean( 'Keep Message Copy', @@ -175,10 +175,10 @@ class MailComposer(models.TransientModel): compute='_compute_force_send', readonly=False, store=True) mail_server_id = fields.Many2one( 'ir.mail_server', string='Outgoing mail server', - compute='_compute_mail_server_id', readonly=False, store=True) + compute='_compute_mail_server_id', readonly=False, store=True, compute_sudo=False) scheduled_date = fields.Char( 'Scheduled Date', - compute='_compute_scheduled_date', readonly=False, store=True, + compute='_compute_scheduled_date', readonly=False, store=True, compute_sudo=False, help="In comment mode: if set, postpone notifications sending. " "In mass mail mode: if sent, send emails after that date. " "This date is considered as being in UTC timezone.")