diff --git a/frappe/core/doctype/file/file.py b/frappe/core/doctype/file/file.py index 34ff1f5599..8614740d26 100755 --- a/frappe/core/doctype/file/file.py +++ b/frappe/core/doctype/file/file.py @@ -470,11 +470,14 @@ class File(Document): self.content_type = mimetypes.guess_type(self.file_name)[0] - if self.content_type and "image" in self.content_type and \ - frappe.get_system_settings("remove_exif_tags"): + self.file_size = self.check_max_file_size() + + if ( + self.content_type and "image" in self.content_type + and frappe.get_system_settings("strip_exif_metadata_from_uploaded_images") + ): self.content = strip_exif_data(self.content, self.content_type) - self.file_size = self.check_max_file_size() self.content_hash = get_content_hash(self.content) duplicate_file = None diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json index 987c079b77..79fb84923a 100644 --- a/frappe/core/doctype/system_settings/system_settings.json +++ b/frappe/core/doctype/system_settings/system_settings.json @@ -37,7 +37,7 @@ "allow_login_using_mobile_number", "allow_login_using_user_name", "allow_error_traceback", - "remove_exif_tags", + "strip_exif_metadata_from_uploaded_images", "password_settings", "logout_on_password_reset", "force_user_to_reset_password", @@ -464,15 +464,15 @@ }, { "default": "1", - "fieldname": "remove_exif_tags", + "fieldname": "strip_exif_metadata_from_uploaded_images", "fieldtype": "Check", - "label": "Remove EXIF tags from uploaded images" + "label": "Strip EXIF tags from uploaded images" } ], "icon": "fa fa-cog", "issingle": 1, "links": [], - "modified": "2020-11-30 17:04:06.785282", + "modified": "2020-11-30 18:52:22.161391", "modified_by": "Administrator", "module": "Core", "name": "System Settings", diff --git a/frappe/tests/test_image.py b/frappe/tests/test_image.py deleted file mode 100644 index b8ed0792b6..0000000000 --- a/frappe/tests/test_image.py +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -# MIT License. See license.txt -from __future__ import unicode_literals - -import unittest -from PIL import Image -from frappe.utils.image import strip_exif_data -import io - -class TestImage(unittest.TestCase): - def test_strip_exif_data(self): - original_image = Image.open("../apps/frappe/frappe/tests/data/exif_sample_image.jpg") - original_image_content = io.open("../apps/frappe/frappe/tests/data/exif_sample_image.jpg", mode='rb').read() - - new_image_content = strip_exif_data(original_image_content, "image/jpeg") - new_image = Image.open(io.BytesIO(new_image_content)) - - self.assertEqual(new_image._getexif(), None) - self.assertNotEqual(original_image._getexif(), new_image._getexif()) \ No newline at end of file diff --git a/frappe/tests/test_utils.py b/frappe/tests/test_utils.py index 8cdfe3e1a9..ebba60b8e8 100644 --- a/frappe/tests/test_utils.py +++ b/frappe/tests/test_utils.py @@ -7,6 +7,10 @@ import unittest from frappe.utils import evaluate_filters, money_in_words, scrub_urls, get_url from frappe.utils import ceil, floor +from PIL import Image +from frappe.utils.image import strip_exif_data +import io + class TestFilters(unittest.TestCase): def test_simple_dict(self): self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open'}, {'status': 'Open'})) @@ -122,3 +126,14 @@ class TestHTMLUtils(unittest.TestCase): clean = clean_email_html(sample) self.assertTrue('