From 66966501f86e93e8c205aa4acccdafe366a88039 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Fri, 23 Apr 2021 14:53:02 +0200 Subject: [PATCH] Added `FileExtensionValidator` to logo and favicon fields. #112 --- admin_interface/models.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/admin_interface/models.py b/admin_interface/models.py index 9bcb28a..2288c95 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -7,6 +7,11 @@ from admin_interface.cache import del_cached_active_theme from colorfield.fields import ColorField import django +if django.VERSION >= (1, 11): + from django.core.validators import FileExtensionValidator +else: + FileExtensionValidator = lambda allowed_extensions: None + from django.db import models from django.db.models.signals import post_delete, post_save, pre_save if django.VERSION < (2, 0): @@ -99,6 +104,8 @@ class Theme(models.Model): logo = models.FileField( upload_to='admin-interface/logo/', blank=True, + validators=[FileExtensionValidator( + allowed_extensions=['gif', 'jpg', 'jpeg', 'png', 'svg'])], help_text=_('Leave blank to use the default Django logo'), verbose_name=_('logo')) logo_color = ColorField( @@ -114,6 +121,8 @@ class Theme(models.Model): favicon = models.FileField( upload_to='admin-interface/favicon/', blank=True, + validators=[FileExtensionValidator( + allowed_extensions=['gif', 'ico', 'jpg', 'jpeg', 'png', 'svg'])], help_text=_('(.ico|.png|.gif - 16x16|32x32 px)'), verbose_name=_('favicon'))