[FIX] mail: harmonize computed field

Avoid accessing inconsistent data based on the user

closes odoo/odoo#157098

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This commit is contained in:
Martin Trigaux (mat)
2024-03-12 10:34:49 +00:00
parent 37507fbfc2
commit d0cd86bd14
2 changed files with 8 additions and 8 deletions
+1 -1
View File
@@ -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')
+7 -7
View File
@@ -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.")