From 345a713777d7a7c559610f72db1ae22d6187f985 Mon Sep 17 00:00:00 2001 From: Thomas Wheeler Date: Fri, 31 Dec 2021 14:59:37 -0800 Subject: [PATCH 1/2] updated validate_file_extension() to look for defined VALID_EXTENTIONS in settings.py so its configurable --- helpdesk/validators.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/helpdesk/validators.py b/helpdesk/validators.py index ced10523..602917d5 100644 --- a/helpdesk/validators.py +++ b/helpdesk/validators.py @@ -2,14 +2,22 @@ # # validators for file uploads, etc. - +from django.conf import settings def validate_file_extension(value): import os from django.core.exceptions import ValidationError ext = os.path.splitext(value.name)[1] # [0] returns path+filename - valid_extensions = ['.txt', '.pdf', '.doc', '.docx', '.odt', '.jpg', '.png'] # TODO: we might improve this with more thorough checks of file types # rather than just the extensions. - if not ext.lower() in valid_extensions: + + # check if VALID_EXTENSTIONS is defined in settings.py + # if not use defaults + + if settings.VALID_EXTENSTIONS: + valid_extenstions = settings.VALID_EXTENSTIONS + else: + valid_extenstions = ['.txt', '.pdf', '.doc', '.docx', '.odt', '.jpg', '.png'] + + if not ext.lower() in valid_extenstions: raise ValidationError('Unsupported file extension.') From ae73fec2a0a5a024028d218db00e9cdb488c2a5e Mon Sep 17 00:00:00 2001 From: Garret Wassermann Date: Fri, 31 Dec 2021 22:21:28 -0500 Subject: [PATCH 2/2] Spellchecking in validators.py --- helpdesk/validators.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/helpdesk/validators.py b/helpdesk/validators.py index 602917d5..01500a9a 100644 --- a/helpdesk/validators.py +++ b/helpdesk/validators.py @@ -4,6 +4,8 @@ from django.conf import settings +#TODO: can we use the builtin Django validator instead? +# see: https://docs.djangoproject.com/en/4.0/ref/validators/#fileextensionvalidator def validate_file_extension(value): import os from django.core.exceptions import ValidationError @@ -11,13 +13,13 @@ def validate_file_extension(value): # TODO: we might improve this with more thorough checks of file types # rather than just the extensions. - # check if VALID_EXTENSTIONS is defined in settings.py + # check if VALID_EXTENSIONS is defined in settings.py # if not use defaults - if settings.VALID_EXTENSTIONS: - valid_extenstions = settings.VALID_EXTENSTIONS + if settings.VALID_EXTENSIONS: + valid_extensions = settings.VALID_EXTENSIONS else: - valid_extenstions = ['.txt', '.pdf', '.doc', '.docx', '.odt', '.jpg', '.png'] + valid_extensions = ['.txt', '.pdf', '.doc', '.docx', '.odt', '.jpg', '.png'] - if not ext.lower() in valid_extenstions: + if not ext.lower() in valid_extensions: raise ValidationError('Unsupported file extension.')