django-cas-server/cas_server/forms.py

45 lines
1.6 KiB
Python
Raw Normal View History

2015-05-27 19:56:39 +00:00
"""forms for the app"""
import cas_server.default_settings
2015-05-17 21:24:41 +00:00
2015-05-16 21:43:46 +00:00
from django import forms
from django.conf import settings
2015-05-22 15:55:00 +00:00
from django.utils.translation import ugettext_lazy as _
2015-05-16 21:43:46 +00:00
2015-05-27 19:56:39 +00:00
from . import models
2015-05-16 21:43:46 +00:00
class UserCredential(forms.Form):
2015-05-27 19:56:39 +00:00
"""Form used on the login page to retrive user credentials"""
2015-05-22 15:55:00 +00:00
username = forms.CharField(label=_('login'))
2015-05-16 21:43:46 +00:00
service = forms.CharField(widget=forms.HiddenInput(), required=False)
2015-05-22 15:55:00 +00:00
password = forms.CharField(label=_('password'), widget=forms.PasswordInput)
2015-05-16 21:43:46 +00:00
method = forms.CharField(widget=forms.HiddenInput(), required=False)
2015-05-22 15:55:00 +00:00
warn = forms.BooleanField(label=_('warn'), required=False)
2015-05-16 21:43:46 +00:00
def __init__(self, *args, **kwargs):
super(UserCredential, self).__init__(*args, **kwargs)
def clean(self):
cleaned_data = super(UserCredential, self).clean()
auth = settings.CAS_AUTH_CLASS(cleaned_data.get("username"))
if auth.test_password(cleaned_data.get("password")):
try:
user = models.User.objects.get(username=auth.username)
2015-05-27 19:56:39 +00:00
user.attributs = auth.attributs()
2015-05-16 21:43:46 +00:00
user.save()
except models.User.DoesNotExist:
2015-05-27 19:56:39 +00:00
user = models.User.objects.create(
username=auth.username,
attributs=auth.attributs()
)
2015-05-16 21:43:46 +00:00
user.save()
else:
2015-05-23 17:03:37 +00:00
raise forms.ValidationError(_(u"Bad user"))
2015-05-16 21:43:46 +00:00
class TicketForm(forms.ModelForm):
2015-05-27 19:56:39 +00:00
"""Form for Tickets in the admin interface"""
2015-05-16 21:43:46 +00:00
class Meta:
model = models.Ticket
exclude = []
service = forms.CharField(widget=forms.TextInput)