summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2019-07-02 09:49:18 +0200
committerXavier Morel <xmo@odoo.com>2019-07-02 10:06:50 +0200
commite09a5fb3ea29b50ae2c348fd4aefdaf4ab77aebf (patch)
tree33dba3079dd777cbcb98c26d6db5803c3f38d12b
parentf72a0163891efa876d3b21c181d02c7be992ceb1 (diff)
[FIX] base: don't overwrite existing extensions
The point was to fix files attachments without an extension, potentially appending to existing extensions was not a smart idea. See #34299, 5eb15c01b556620c77c0f7327494d4bf3117d115
-rw-r--r--odoo/addons/base/models/ir_http.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/odoo/addons/base/models/ir_http.py b/odoo/addons/base/models/ir_http.py
index 897ca1de9ba..36ec15a40ae 100644
--- a/odoo/addons/base/models/ir_http.py
+++ b/odoo/addons/base/models/ir_http.py
@@ -367,9 +367,11 @@ class IrHttp(models.AbstractModel):
mimetype = guess_mimetype(base64.b64decode(content), default=default_mimetype)
# extension
- extension = mimetypes.guess_extension(mimetype)
- if extension and not filename.endswith(extension):
- filename = "%s%s" % (filename, extension)
+ _, existing_extension = os.path.splitext(filename)
+ if not existing_extension:
+ extension = mimetypes.guess_extension(mimetype)
+ if extension:
+ filename = "%s%s" % (filename, extension)
if not filehash:
filehash = '"%s"' % hashlib.md5(pycompat.to_text(content).encode('utf-8')).hexdigest()