From 692f387e897631f8c0311e00c48148f09f28eb66 Mon Sep 17 00:00:00 2001 From: Smith Ellis Date: Wed, 13 Nov 2024 11:00:08 -0500 Subject: [PATCH] Move validation to the clean_avatar method --- kitsune/groups/forms.py | 25 +++++++++++++------------ kitsune/groups/views.py | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/kitsune/groups/forms.py b/kitsune/groups/forms.py index 044393e19b5..a751a688c63 100644 --- a/kitsune/groups/forms.py +++ b/kitsune/groups/forms.py @@ -24,6 +24,7 @@ class GroupAvatarForm(forms.ModelForm): avatar = LimitedImageField(required=True, widget=ImageWidget) def __init__(self, *args, **kwargs): + self.request = kwargs.pop("request", None) super(GroupAvatarForm, self).__init__(*args, **kwargs) self.fields["avatar"].help_text = _("Your avatar will be resized to {size}x{size}").format( size=settings.AVATAR_SIZE @@ -34,19 +35,19 @@ class Meta: fields = ["avatar"] def clean_avatar(self): - avatar = self.cleaned_data.get("avatar") - + """Validate the avatar file.""" # Ensure an avatar file is attached - if not avatar: - raise forms.ValidationError(_("An avatar image is required.")) - - # Validate file size - try: - check_file_size(avatar, settings.MAX_AVATAR_FILE_SIZE) - except FileTooLargeError as e: - raise forms.ValidationError(e.args[0]) - - return avatar + if self.request.method == "POST": + avatar = self.request.FILES.get("avatar") + if not avatar: + raise forms.ValidationError(_("You have not selected an image to upload.")) + # Validate file size + try: + check_file_size(avatar, settings.MAX_AVATAR_FILE_SIZE) + except FileTooLargeError as e: + raise forms.ValidationError(e.args[0]) + + return self.cleaned_data["avatar"] USERS_PLACEHOLDER = _lazy("username") diff --git a/kitsune/groups/views.py b/kitsune/groups/views.py index fedc54e636e..dbf15386b9e 100755 --- a/kitsune/groups/views.py +++ b/kitsune/groups/views.py @@ -82,7 +82,7 @@ def edit_avatar(request, group_slug): if not _user_can_edit(request.user, prof): raise PermissionDenied - form = GroupAvatarForm(request.POST or None, request.FILES or None, instance=prof) + form = GroupAvatarForm(request.POST or None, request.FILES, instance=prof, request=request) old_avatar_path = None