summaryrefslogtreecommitdiff
path: root/addons/web_editor/controllers
diff options
context:
space:
mode:
authorSamuel Degueldre <sad@odoo.com>2020-10-29 09:59:52 +0000
committerSamuel Degueldre <sad@odoo.com>2020-10-29 10:51:07 +0000
commitb0993370b6fcec1f966e4bf2994eee7f31da82d5 (patch)
tree3d1579424ce877d4b8c1ea573c783b71b54ba734 /addons/web_editor/controllers
parentdaa5011e6cc26a756a9bc5b082b846baf735c5eb (diff)
[FIX] web_editor: fix issues related to loading image info
In order to allow modifying background images, we need information on the image, this is done by creating a placeholder img and calling the loadImageInfo function on it. However this function did not account for the case where an image had not src attribute, which causes an unnecessary rpc. Other problems could arise from this as an attachment that doesn't have the correct mimetype but has a matching src could be returned, causing its image_src field to be false, which we would then attempt to load as a valid image, causing crashes. This commit fixes that by not trying to load image infos when the src of an image is empty, only looking for attachments of the supported mimetypes, and also checking that we actually did receive an image_src before setting it as the original src of the image, which will prevent accidentally trying to load a falsy src as an actual image. closes odoo/odoo#60953 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Diffstat (limited to 'addons/web_editor/controllers')
-rw-r--r--addons/web_editor/controllers/main.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/addons/web_editor/controllers/main.py b/addons/web_editor/controllers/main.py
index e79751eeb79..87db5e7b377 100644
--- a/addons/web_editor/controllers/main.py
+++ b/addons/web_editor/controllers/main.py
@@ -17,6 +17,8 @@ from odoo.exceptions import UserError
from odoo.modules.module import get_module_path, get_resource_path
from odoo.tools.misc import file_open
+from ..models.ir_attachment import SUPPORTED_IMAGE_MIMETYPES
+
logger = logging.getLogger(__name__)
DEFAULT_LIBRARY_ENDPOINT = 'https://media-api.odoo.com'
@@ -224,7 +226,10 @@ class Web_Editor(http.Controller):
else:
# Find attachment by url. There can be multiple matches because of default
# snippet images referencing the same image in /static/, so we limit to 1
- attachment = request.env['ir.attachment'].search([('url', '=like', src)], limit=1)
+ attachment = request.env['ir.attachment'].search([
+ ('url', '=like', src),
+ ('mimetype', 'in', SUPPORTED_IMAGE_MIMETYPES),
+ ], limit=1)
if not attachment:
return {
'attachment': False,