#28751: Add an error message for inactive user login in AdminAuthenticationForm -------------------------------------+------------------------------------- Reporter: SeungWon Kang | Owner: nobody Type: | Status: new Cleanup/optimization | Component: contrib.admin | Version: master Severity: Normal | Resolution: Keywords: | Triage Stage: | Unreviewed Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 -------------------------------------+------------------------------------- Description changed by SeungWon Kang:
Old description: > In admin login site, I found that error message for 'inactive' user does > not exist. (In AuthenticationForm it exists) I know default BackEnd > checks the inactive in user_can_authenticate() method, but I think this > error message is helpful if using other BackEnd like > AllowAllUsersModelBackEnd. > > In AuthenticationForm, > {{{ > def confirm_login_allowed(self, user): > ... > if not user.is_active: > raise forms.ValidationError( > self.error_messages['inactive'], > code='inactive', > ) > }}} > > but in AdminAuthenticationForm, > > {{{ > def confirm_login_allowed(self, user): > if not user.is_active or not user.is_staff: > raise forms.ValidationError( > self.error_messages['invalid_login'], > code='invalid_login', > params={'username': self.username_field.verbose_name} > ) > }}} New description: In admin login site, I found that ValidationError message for 'inactive' user does not exist. (In AuthenticationForm it exists) I know default BackEnd checks the is_active in user_can_authenticate() method, but I think adding this error message would be helpful if using other BackEnd like AllowAllUsersModelBackEnd. In AuthenticationForm, it shows inactive error message to the inactive user(user that `is_active=False`) {{{ def confirm_login_allowed(self, user): ... if not user.is_active: raise forms.ValidationError( self.error_messages['inactive'], code='inactive', ) }}} but in AdminAuthenticationForm, it shows invalid_login error message to the inactive user(user that `is_active=False`) {{{ def confirm_login_allowed(self, user): if not user.is_active or not user.is_staff: raise forms.ValidationError( self.error_messages['invalid_login'], code='invalid_login', params={'username': self.username_field.verbose_name} ) }}} So I suggest to change it like {{{ error_messages = { ... 'inactive': _("This account is inactive."), } ... def confirm_login_allowed(self, user): if not user.is_active: raise forms.ValidationError( self.error_messages['inactive'], code='inactive', ) if not user.is_staff: raise forms.ValidationError( self.error_messages['invalid_login'], code='invalid_login', params = {'username': self.username_field.verbose_name}, ) .... }}} -- -- Ticket URL: <https://code.djangoproject.com/ticket/28751#comment:3> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/065.6c74c0357a8c101810793ec5777a35ab%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.