summaryrefslogtreecommitdiff
path: root/tbc/static/admin/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'tbc/static/admin/forms.py')
-rw-r--r--tbc/static/admin/forms.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tbc/static/admin/forms.py b/tbc/static/admin/forms.py
new file mode 100644
index 0000000..2e482b9
--- /dev/null
+++ b/tbc/static/admin/forms.py
@@ -0,0 +1,29 @@
+from __future__ import unicode_literals
+
+from django import forms
+from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
+from django.utils.translation import ugettext_lazy as _
+
+
+class AdminAuthenticationForm(AuthenticationForm):
+ """
+ A custom authentication form used in the admin app.
+ """
+ error_messages = {
+ 'invalid_login': _("Please enter the correct %(username)s and password "
+ "for a staff account. Note that both fields may be "
+ "case-sensitive."),
+ }
+ required_css_class = 'required'
+
+ 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}
+ )
+
+
+class AdminPasswordChangeForm(PasswordChangeForm):
+ required_css_class = 'required'