X-Git-Url: https://git.mdrn.pl/django-cas-provider.git/blobdiff_plain/42bd8e07d31dd4ef9f1f899342e1acba3ee0b8cf..d49a76b7b6e3907820847497e3b42ac4450b8c2d:/cas_provider/forms.py diff --git a/cas_provider/forms.py b/cas_provider/forms.py index 652f437..e4df105 100644 --- a/cas_provider/forms.py +++ b/cas_provider/forms.py @@ -1,52 +1,24 @@ +from __future__ import unicode_literals + from django import forms -from django.conf import settings -from django.contrib.auth import authenticate -from django.forms import ValidationError from django.utils.translation import ugettext_lazy as _ -from models import LoginTicket -import datetime - - -__all__ = ['LoginForm', ] class LoginForm(forms.Form): - username = forms.CharField(max_length=30, label=_('username')) - password = forms.CharField(widget=forms.PasswordInput, label=_('password')) - lt = forms.CharField(widget=forms.HiddenInput) + username = forms.CharField(widget=forms.TextInput(attrs={'autofocus': 'autofocus', + 'max_length': '255'}), + label=_('Username')) + password = forms.CharField(widget=forms.PasswordInput(), label=_('Password')) service = forms.CharField(widget=forms.HiddenInput, required=False) def __init__(self, *args, **kwargs): + # renew = kwargs.pop('renew', None) + # gateway = kwargs.pop('gateway', None) + request = kwargs.pop('request', None) super(LoginForm, self).__init__(*args, **kwargs) - self._user = None - - def clean_lt(self): - ticket = self.cleaned_data['lt'] - timeframe = datetime.datetime.now() - \ - datetime.timedelta(minutes=settings.CAS_TICKET_EXPIRATION) - try: - return LoginTicket.objects.get(ticket=ticket, created__gte=timeframe) - except LoginTicket.DoesNotExist: - raise ValidationError(_('Login ticket expired. Please try again.')) - return ticket + self.request = request - 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 - 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(): - errors += [e for e in error] - return errors +class MergeLoginForm(LoginForm): + username = forms.CharField(max_length=255, widget=forms.HiddenInput, + label=_('Username'))