Enforce access rights on the email template record on marketing email

Closes #14907
(grafted from 856dea6dca76bd9cd7fa03a3dbe51f160b912e69)

--HG--
branch : 8.0
This commit is contained in:
Cédric Krier
2026-06-30 23:08:14 +02:00
parent de1a30881f
commit 51bbd71965
2 changed files with 13 additions and 0 deletions
+1
View File
@@ -1,3 +1,4 @@
* Enforce access rights on the email template record (issue14907)
Version 8.0.0 - 2026-04-20
--------------------------
+12
View File
@@ -29,6 +29,11 @@ from trytond.transaction import Transaction, inactive_records
from trytond.url import http_base
from trytond.wizard import Button, StateTransition, StateView, Wizard
try:
from trytond.model import ModelAccessProxy
except ImportError:
ModelAccessProxy = None
from .exceptions import EMailValidationError, TemplateError
@@ -427,6 +432,7 @@ class Message(Workflow, ModelSQL, ModelView):
def process(cls, messages=None, emails=None, smtpd_datamanager=None):
pool = Pool()
WebShortener = pool.get('web.shortened_url')
ModelData = pool.get('ir.model.data')
spy_pixel = config.getboolean(
'marketing', 'email_spy_pixel', default=False)
@@ -480,6 +486,12 @@ class Message(Workflow, ModelSQL, ModelView):
message=message.rec_name,
exception=exception)) from exception
for email in (emails or message.list_.emails):
if ModelAccessProxy:
email = ModelAccessProxy(
email, {
'_groups': [
ModelData.get_id('marketing.group_marketing')],
})
content = (template
.generate(
email=email,