X-Git-Url: https://git.mdrn.pl/django-cas-provider.git/blobdiff_plain/42bd8e07d31dd4ef9f1f899342e1acba3ee0b8cf..a9dc703609231521ed596e6ac9fa7cd746aa6fe1:/cas_provider/forms.py?ds=sidebyside diff --git a/cas_provider/forms.py b/cas_provider/forms.py index 652f437..ba6aff0 100644 --- a/cas_provider/forms.py +++ b/cas_provider/forms.py @@ -1,6 +1,7 @@ from django import forms from django.conf import settings from django.contrib.auth import authenticate +from django.contrib.auth.forms import AuthenticationForm from django.forms import ValidationError from django.utils.translation import ugettext_lazy as _ from models import LoginTicket @@ -10,16 +11,10 @@ import datetime __all__ = ['LoginForm', ] -class LoginForm(forms.Form): - username = forms.CharField(max_length=30, label=_('username')) - password = forms.CharField(widget=forms.PasswordInput, label=_('password')) +class LoginForm(AuthenticationForm): lt = forms.CharField(widget=forms.HiddenInput) service = forms.CharField(widget=forms.HiddenInput, required=False) - def __init__(self, *args, **kwargs): - super(LoginForm, self).__init__(*args, **kwargs) - self._user = None - def clean_lt(self): ticket = self.cleaned_data['lt'] timeframe = datetime.datetime.now() - \ @@ -31,20 +26,10 @@ class LoginForm(forms.Form): return ticket def clean(self): - username = self.cleaned_data.get('username') - password = self.cleaned_data.get('password') - user = authenticate(username=username, password=password) - if user is None: - raise ValidationError(_('Incorrect username and/or password.')) - if not user.is_active: - raise ValidationError(_('This account is disabled.')) - self._user = user + AuthenticationForm.clean(self) self.cleaned_data.get('lt').delete() return self.cleaned_data - def get_user(self): - return self._user - def get_errors(self): errors = [] for k, error in self.errors.items():