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
class LoginForm(forms.Form):
- email = forms.CharField(widget=forms.TextInput(attrs={'autofocus': 'autofocus',
- 'placeholder': 'Email',
+ username = forms.CharField(widget=forms.TextInput(attrs={'autofocus': 'autofocus',
'max_length': '255'}))
- password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))
+ password = forms.CharField(widget=forms.PasswordInput())
service = forms.CharField(widget=forms.HiddenInput, required=False)
- remember_me = forms.BooleanField(required=False, label="Keep me signed in",
- widget=forms.CheckboxInput(attrs={'class': 'remember_me'}))
def __init__(self, *args, **kwargs):
# renew = kwargs.pop('renew', None)
super(LoginForm, self).__init__(*args, **kwargs)
self.request = request
- def clean_remember_me(self):
- remember = self.cleaned_data['remember_me']
- if not remember and self.request is not None:
- self.request.session.set_expiry(0)
-
class MergeLoginForm(LoginForm):
- email = forms.CharField(max_length=255, widget=forms.HiddenInput)
+ username = forms.CharField(max_length=255, widget=forms.HiddenInput)
logger = logging.getLogger('cas_provider.views')
import urllib
-import logging
from urllib import urlencode
import urllib2
import urlparse
from cas_provider.models import ProxyGrantingTicket, ProxyTicket
from cas_provider.models import ServiceTicket
-from cas_provider.exceptions import SameEmailMismatchedPasswords
from cas_provider.forms import LoginForm, MergeLoginForm
from . import signals
if form.is_valid():
service = form.cleaned_data.get('service', None)
try:
- auth_args = dict(username=form.cleaned_data['email'],
+ auth_args = dict(username=form.cleaned_data['username'],
password=form.cleaned_data['password'])
if merge:
# We only want to send the merge argument if it's
# through the auth backends properly.
auth_args['merge'] = merge
user = authenticate(**auth_args)
- except SameEmailMismatchedPasswords:
+ except:
# Need to merge the accounts?
if merge:
# We shouldn't get here...
base_url = reverse('cas_provider_merge')
args = dict(
success_redirect=success_redirect,
- email=form.cleaned_data['email'],
+ username=form.cleaned_data['username'],
)
if service is not None:
args['service'] = service
else: # Not a POST...
if merge:
- form = MergeLoginForm(initial={'service': service, 'email': request.GET.get('email')})
+ form = MergeLoginForm(initial={'service': service, 'username': request.GET.get('username')})
else:
form = LoginForm(initial={'service': service})
if user is not None and user.is_authenticated():
# We have an authenticated user.
if not user.is_active:
- errors.append('This account is disabled.')
+ errors.append('This account is disabled. Please contact us if you feel it should be enabled again.')
else:
# Send the on_cas_login signal. If we get an HttpResponse, return that.
for receiver, response in signals.on_cas_login.send(sender=login, request=request, **kwargs):
uri[3] = urlencode(query)
try:
- response = urllib2.urlopen(urlparse.urlunsplit(uri))
+ urllib2.urlopen(urlparse.urlunsplit(uri))
except urllib2.HTTPError as e:
if not e.code in proxy_callback_good_status:
logger.debug('Checking Proxy Callback URL {} returned {}. Not issuing PGT.'.format(uri, e.code))