file-store: handle custom extensions validation better, e.g lower case and both formats .exe / exe

This commit is contained in:
Bartlomiej Wolynczyk 2019-10-05 20:51:55 +02:00
parent e1bc49fad6
commit 87de1b2988

View file

@ -143,13 +143,18 @@ class LocalFileStorage(object):
:param ext: extension to check
:param extensions: iterable of extensions to validate against (or self.extensions)
"""
def normalize_ext(_ext):
if _ext.startswith('.'):
_ext = _ext[1:]
return _ext.lower()
extensions = extensions or self.extensions
if not extensions:
return True
if ext.startswith('.'):
ext = ext[1:]
return ext.lower() in extensions
ext = normalize_ext(ext)
return ext in [normalize_ext(x) for x in extensions]
def save_file(self, file_obj, filename, directory=None, extensions=None,
extra_metadata=None, **kwargs):