diff options
| author | Paul Morelle <pmo@odoo.com> | 2019-11-04 10:06:21 +0000 |
|---|---|---|
| committer | fw-bot <otis@odoo.com> | 2019-11-04 15:01:50 +0000 |
| commit | c78cda887657601f426f357fe230c3c7191b20c8 (patch) | |
| tree | 710bb9a8f4fe2435d8f801ebea2f0eb0cae89f07 /addons/link_tracker/models/link_tracker.py | |
| parent | baf64e03bc374009a4eafaa9d6ba1db4fd690dc4 (diff) | |
[FIX] link_tracker: support any url
URLs with parameters were not correctly supported by the regular
expression.
For example, URLs with parameters were truncated before the '?'.
This patch adds support for a wider range of URLs, and checks in a test
that the parameters are correctly handled.
closes odoo/odoo#39762
X-original-commit: 616e145635eac06a0a44ab3d899f4a9e707b3ba8
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
Diffstat (limited to 'addons/link_tracker/models/link_tracker.py')
| -rw-r--r-- | addons/link_tracker/models/link_tracker.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py index e623b4e92f6..3af4accb9ba 100644 --- a/addons/link_tracker/models/link_tracker.py +++ b/addons/link_tracker/models/link_tracker.py @@ -15,7 +15,7 @@ from odoo import models, fields, api, _ URL_REGEX = r'(\bhref=[\'"](?!mailto:|tel:|sms:)([^\'"]+)[\'"])' -TEXT_URL_REGEX = r'(https?:\/\/(www\.)?[a-zA-Z0-9@:%._\+~#=/-]{1,64})' +TEXT_URL_REGEX = r'https?://[a-zA-Z0-9@:%._\+~#=/-]+(?:\?\S+)?' def VALIDATE_URL(url): @@ -151,8 +151,7 @@ class LinkTracker(models.Model): def _convert_links_text(self, body, vals, blacklist=None): shortened_schema = self.env['ir.config_parameter'].sudo().get_param('web.base.url') + '/r/' unsubscribe_schema = self.env['ir.config_parameter'].sudo().get_param('web.base.url') + '/sms/' - for match in re.findall(TEXT_URL_REGEX, body): - original_url = match[0] + for original_url in re.findall(TEXT_URL_REGEX, body): # don't shorten already-shortened links or links towards unsubscribe page if original_url.startswith(shortened_schema) or original_url.startswith(unsubscribe_schema): continue |
