diff --git a/sso/forms.py b/sso/forms.py index 079c93c..b79829d 100644 --- a/sso/forms.py +++ b/sso/forms.py @@ -34,8 +34,8 @@ def UserServiceAccountForm(user): class ServiceAccountForm(forms.Form): """ Service Account Form """ - character = forms.ModelChoiceField(queryset=chars) - service = forms.ModelChoiceField(queryset=services) + character = forms.ModelChoiceField(queryset=chars, required=True, empty_label=None) + service = forms.ModelChoiceField(queryset=services, required=True, empty_label=None) def clean(self): if not self.cleaned_data['character'].corporation.group in self.cleaned_data['service'].groups.all(): diff --git a/sso/views.py b/sso/views.py index 041dc37..c9e55d2 100644 --- a/sso/views.py +++ b/sso/views.py @@ -10,7 +10,7 @@ from eve_api.api_exceptions import APIAuthException, APINoUserIDException from eve_api.api_puller.accounts import import_eve_account from eve_api.models.api_player import EVEAccount -from sso.models import ServiceAccount, SSOUser, ExistingUser +from sso.models import ServiceAccount, Service, SSOUser, ExistingUser from sso.forms import EveAPIForm, UserServiceAccountForm, RedditAccountForm, UserLookupForm from reddit.models import RedditAccount @@ -110,7 +110,12 @@ def service_add(request): return render_to_response('sso/serviceaccount_created.html', { 'account': acc, 'error': error }) else: #defaults = { 'username': request.user.username, 'password': request.user.get_profile().default_service_passwd } - form = clsform() # An unbound form + + availserv = Service.objects.filter(groups__in=request.user.groups.all()).exclude(id__in=ServiceAccount.objects.filter(user=request.user).values('service')) + if len(availserv) == 0: + return HttpResponseRedirect(reverse('sso.views.profile')) + else: + form = clsform() # An unbound form return render_to_response('sso/serviceaccount.html', locals())