[FIX] mail: allow a normal user to view the mail template preview

Bug
===
A user without administration right can not preview a mail template because
of the ACl on the <ir.model>.

Task-2845877

X-original-commit: 087875594daefe487a5988a56c298af844d21dfb
Part-of: odoo/odoo#99256
This commit is contained in:
std-odoo
2022-08-30 21:25:55 +02:00
committed by Thibault Delavallée
parent 93fc52c8e1
commit 4e100d5e37
+7 -5
View File
@@ -24,10 +24,11 @@ class MailTemplatePreview(models.TransientModel):
result = super(MailTemplatePreview, self).default_get(fields)
if not result.get('mail_template_id') or 'resource_ref' not in fields:
return result
mail_template = self.env['mail.template'].browse(result['mail_template_id'])
res = self.env[mail_template.model_id.model].search([], limit=1)
mail_template = self.env['mail.template'].browse(result['mail_template_id']).sudo()
model = mail_template.model
res = self.env[model].search([], limit=1)
if res:
result['resource_ref'] = '%s,%s' % (mail_template.model_id.model, res.id)
result['resource_ref'] = '%s,%s' % (model, res.id)
return result
mail_template_id = fields.Many2one('mail.template', string='Related Mail Template', required=True)
@@ -52,8 +53,9 @@ class MailTemplatePreview(models.TransientModel):
@api.depends('model_id')
def _compute_no_record(self):
for preview in self:
preview.no_record = (self.env[preview.model_id.model].search_count([]) == 0) if preview.model_id else True
for preview, preview_sudo in zip(self, self.sudo()):
model_id = preview_sudo.model_id
preview.no_record = not model_id or not self.env[model_id.model].search_count([])
@api.depends('lang', 'resource_ref')
def _compute_mail_template_fields(self):