details:   https://code.tryton.org/tryton/commit/00a2b81b3de5
branch:    7.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 9b1d5b0341b3 -r 00a2b81b3de5 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
@@ -183,7 +183,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):
@@ -215,7 +218,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 9b1d5b0341b3 -r 00a2b81b3de5 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
@@ -318,7 +318,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):
@@ -372,8 +375,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):

Reply via email to