details: https://code.tryton.org/tryton/commit/4cd16a13f125
branch: 6.0
user: Cédric Krier <[email protected]>
date: Mon Jan 19 12:30:41 2026 +0100
description:
Do not try to add parameters to empty URL
Closes #14505
(grafted from a014cc36dac8a16f6c3ebd2450f1ba930a7f614f)
diffstat:
modules/marketing_email/marketing.py | 10 ++++++++--
modules/web_user/user.py | 12 +++++++++---
2 files changed, 17 insertions(+), 5 deletions(-)
diffs (56 lines):
diff -r af4876fcddf3 -r 4cd16a13f125 modules/marketing_email/marketing.py
--- a/modules/marketing_email/marketing.py Thu Jan 29 10:26:59 2026 +0100
+++ b/modules/marketing_email/marketing.py Mon Jan 19 12:30:41 2026 +0100
@@ -161,7 +161,10 @@
def get_email_subscribe_url(self, url=None):
if url is None:
url = config.get('marketing', 'email_subscribe_url')
- return _add_params(url, token=self.email_token)
+ if url is not None:
+ return _add_params(url, token=self.email_token)
+ else:
+ return ''
@classmethod
def subscribe_url(cls, url):
@@ -193,7 +196,10 @@
def get_email_unsubscribe_url(self, url=None):
if url is None:
url = config.get('marketing', 'email_unsubscribe_url')
- return _add_params(url, token=self.email_token)
+ if url is not None:
+ return _add_params(url, token=self.email_token)
+ else:
+ return ''
@classmethod
def unsubscribe_url(cls, url):
diff -r af4876fcddf3 -r 4cd16a13f125 modules/web_user/user.py
--- a/modules/web_user/user.py Thu Jan 29 10:26:59 2026 +0100
+++ b/modules/web_user/user.py Mon Jan 19 12:30:41 2026 +0100
@@ -297,7 +297,10 @@
def get_email_validation_url(self, url=None):
if url is None:
url = config.get('web', 'email_validation_url')
- return _add_params(url, token=self.email_token)
+ if url is not None:
+ return _add_params(url, token=self.email_token)
+ else:
+ return ''
@classmethod
def validate_email_url(cls, url):
@@ -351,8 +354,11 @@
def get_email_reset_password_url(self, url=None):
if url is None:
url = config.get('web', 'reset_password_url')
- return _add_params(
- url, token=self.reset_password_token, email=self.email)
+ if url is not None:
+ return _add_params(
+ url, token=self.reset_password_token, email=self.email)
+ else:
+ return ''
@classmethod
def set_password_url(cls, url, password):