Fixes SSO forms, now doesnt error when missing a value on Service Add forms

This commit is contained in:
2010-10-27 09:14:43 +01:00
parent 39ec392394
commit c6015dfdad

View File

@@ -8,6 +8,7 @@ from eve_api.models.api_player import EVEAccount, EVEPlayerCharacter, EVEPlayerC
from sso.models import ServiceAccount, Service
from reddit.models import RedditAccount
class EveAPIForm(forms.Form):
""" EVE API input form """
@@ -30,6 +31,7 @@ class EveAPIForm(forms.Form):
else:
raise forms.ValidationError("This API User ID is already registered")
def UserServiceAccountForm(user):
""" Generate a Service Account form based on the user's permissions """
@@ -49,14 +51,23 @@ def UserServiceAccountForm(user):
self.fields['password'] = self.password
def clean(self):
form_data = self.cleaned_data
service = form_data.get('service')
character = form_data.get('character')
if not service or not character:
raise forms.ValidationError('Error while processing the form, please try again')
service_groups = service.groups.all()
# If the service's assigned groups are linked to corps, do a character/corp check
if len(EVEPlayerCorporation.objects.filter(group__in=self.cleaned_data['service'].groups.all())):
corp_group = self.cleaned_data['character'].corporation.group
if self.cleaned_data['character'].corporation.alliance:
alliance_group = self.cleaned_data['character'].corporation.alliance.group
if len(EVEPlayerCorporation.objects.filter(group__in=service_groups)):
corp_group = character.corporation.group
if character.corporation.alliance:
alliance_group = character.corporation.alliance.group
else:
alliance_group = None
service_groups = self.cleaned_data['service'].groups.all()
if not (corp_group in service_groups or alliance_group in service_groups):
raise forms.ValidationError("%s is not in a corporation or alliance allowed to register for %s" % (self.cleaned_data['character'].name, self.cleaned_data['service']))
@@ -65,6 +76,7 @@ def UserServiceAccountForm(user):
return ServiceAccountForm
class ServiceAccountResetForm(forms.Form):
def __init__(self, *args, **kwargs):
super(ServiceAccountResetForm, self).__init__(*args, **kwargs)
@@ -72,6 +84,7 @@ class ServiceAccountResetForm(forms.Form):
self.password = forms.CharField(widget=forms.PasswordInput, label="Password" )
self.fields['password'] = self.password
class RedditAccountForm(forms.Form):
""" Reddit Account Form """
@@ -116,6 +129,7 @@ class UserLookupForm(forms.Form):
return self.cleaned_data
class APIPasswordForm(forms.Form):
password = forms.CharField(widget=forms.PasswordInput, label="Password" )