PEP8 cleanup of SSO

This commit is contained in:
2011-01-07 12:58:01 +00:00
parent 6ad24259e7
commit 6106d8dbb2
6 changed files with 75 additions and 52 deletions

View File

@@ -3,37 +3,37 @@ from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from sso.models import Service, ServiceAccount, SSOUser, SSOUserNote
class ServiceAdmin(admin.ModelAdmin):
list_display = ('name', 'url', 'api', 'active')
search_fields = ['name']
list_filter = ('active',)
admin.site.register(Service, ServiceAdmin)
class ServiceAccountAdmin(admin.ModelAdmin):
list_display = ('service', 'service_uid', 'user', 'active')
search_fields = ['service_uid', 'user__username']
list_filter = ('service', 'active')
admin.site.register(ServiceAccount, ServiceAccountAdmin)
class SSOUserProfileInline(admin.StackedInline):
model = SSOUser
fk_name = 'user'
max_num = 1
# Define a new UserAdmin class
class SSOUserAdmin(UserAdmin):
inlines = [SSOUserProfileInline, ]
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, SSOUserAdmin)
class SSOUserNoteAdmin(admin.ModelAdmin):
list_display = ('user', 'note', 'date_created', 'created_by')
search_fields = ['user__username']
admin.site.register(SSOUserNote, SSOUserNoteAdmin)
admin.site.register(Service, ServiceAdmin)
admin.site.register(ServiceAccount, ServiceAccountAdmin)
admin.site.unregister(User)
admin.site.register(User, SSOUserAdmin)
admin.site.register(SSOUserNote, SSOUserNoteAdmin)

View File

@@ -21,4 +21,3 @@ class SimpleHashModelBackend(ModelBackend):
return user
return None

View File

@@ -10,10 +10,11 @@ from eve_api.models import EVEAccount, EVEPlayerCharacter, EVEPlayerCorporation
from sso.models import ServiceAccount, Service
from registration.forms import RegistrationForm
class RegistrationFormUniqueEmailBlocked(RegistrationForm):
"""
Subclass of ``RegistrationForm`` which disallows registration from certain domains
and also makes sure that the email address is unique in the DB
Subclass of ``RegistrationForm`` which disallows registration from certain
domains and also makes sure that the email address is unique in the DB
"""
def clean_email(self):
@@ -101,6 +102,8 @@ def UserServiceAccountForm(user):
class ServiceAccountResetForm(forms.Form):
""" Password reset form for Services """
def __init__(self, *args, **kwargs):
super(ServiceAccountResetForm, self).__init__(*args, **kwargs)
if not settings.GENERATE_SERVICE_PASSWORD:
@@ -126,7 +129,8 @@ class UserLookupForm(forms.Form):
self.fields['type'] = forms.ChoiceField(label=u'Search type', choices=choices)
self.fields['username'] = forms.CharField(label=u'User ID', max_length=64)
class APIPasswordForm(forms.Form):
""" API Password reset form """
password = forms.CharField(widget=forms.PasswordInput, label="Password")

View File

@@ -15,16 +15,18 @@ from services import get_api
## Exceptions
class CorporateOnlyService(Exception):
pass
class ExistingUser(Exception):
pass
class ServiceError(Exception):
pass
## Models
class SSOUser(models.Model):
""" Extended SSO User Profile options """
@@ -43,6 +45,7 @@ class SSOUser(models.Model):
signals.post_save.connect(SSOUser.create_user_profile, sender=User)
class SSOUserNote(models.Model):
""" Notes bound to a user's account. Used to store information regarding the user """

View File

@@ -4,6 +4,7 @@ from sso.models import ServiceAccount
from django.contrib.auth.models import User
from django.db.models import signals
# Signals that the tasks need to listen for
def eveapi_deleted(sender, instance, **kwargs):
if instance.user:
@@ -14,7 +15,10 @@ signals.post_delete.connect(eveapi_deleted, sender=EVEAccount)
@task()
def update_user_access(user, **kwargs):
""" Process all corporate and alliance entries and correct access groups """
"""
Process all corporate and alliance entries and correct
access groups.
"""
user = User.objects.get(id=user)
@@ -71,6 +75,7 @@ def update_user_access(user, **kwargs):
update_service_groups.delay(user_id=user.id)
@task(ignore_result=True)
def update_service_groups(user_id):
for service in ServiceAccount.objects.filter(user=user_id, active=True).select_related('service__api'):

View File

@@ -31,6 +31,7 @@ def index(request):
else:
return render_to_response('sso/index.html', context_instance=RequestContext(request))
@login_required
def profile(request):
""" Displays the user's profile page """
@@ -44,6 +45,7 @@ def profile(request):
return render_to_response('sso/profile.html', locals(), context_instance=RequestContext(request))
@login_required
def characters(request, charid=0):
""" Provide a list of characters, or a indivdual character sheet """
@@ -56,6 +58,7 @@ def characters(request, charid=0):
characters = EVEPlayerCharacter.objects.select_related('corporation', 'corporation__alliance').filter(eveaccount__user=request.user).only('id', 'name', 'corporation__name', 'corporation__alliance__name')
return render_to_response('sso/characterlist.html', locals(), context_instance=RequestContext(request))
@login_required
def eveapi_add(request):
""" Add a EVE API key to a user's account """
@@ -79,6 +82,7 @@ def eveapi_add(request):
return render_to_response('sso/eveapi.html', locals(), context_instance=RequestContext(request))
@login_required
def eveapi_del(request, userid=0):
""" Delete a EVE API key from a account """
@@ -94,6 +98,7 @@ def eveapi_del(request, userid=0):
return redirect('sso.views.profile')
@login_required
def eveapi_refresh(request, userid=0):
""" Force refresh a EVE API key """
@@ -118,6 +123,7 @@ def eveapi_refresh(request, userid=0):
return redirect('sso.views.profile')
@login_required
def eveapi_log(request, userid=0):
""" Provides a list of access logs for a specific EVE API key """
@@ -133,6 +139,7 @@ def eveapi_log(request, userid=0):
return redirect('sso.views.profile')
@login_required
def service_add(request):
""" Add a service to a user's account """
@@ -179,6 +186,7 @@ def service_add(request):
return render_to_response('sso/serviceaccount/index.html', locals())
@login_required
def service_del(request, serviceid=0):
""" Delete a service from a user's account """
@@ -205,6 +213,7 @@ def service_del(request, serviceid=0):
return redirect('sso.views.profile')
@login_required
def service_reset(request, serviceid=0):
""" Reset a user's password on a service """
@@ -240,6 +249,7 @@ def service_reset(request, serviceid=0):
return redirect('sso.views.profile')
@login_required
def user_view(request, username=None):
""" View a user's profile as a admin """
@@ -260,6 +270,7 @@ def user_view(request, username=None):
return render_to_response('sso/lookup/user.html', locals(), context_instance=RequestContext(request))
@login_required
def user_lookup(request):
""" Lookup a user's account by providing a matching criteria """
@@ -275,12 +286,14 @@ def user_lookup(request):
users = User.objects.filter(username__icontains=form.cleaned_data['username']).only('username')
elif form.cleaned_data['type'] == '2':
uid = EVEAccount.objects.filter(characters__name__icontains=form.cleaned_data['username']).values('user')
for u in uid: uids.append(u['user'])
for u in uid:
uids.append(u['user'])
users = User.objects.filter(id__in=uids).only('username')
elif installed('reddit') and form.cleaned_data['type'] == '3':
from reddit.models import RedditAccount
uid = RedditAccount.objects.filter(username__icontains=form.cleaned_data['username']).values('user')
for u in uid: uids.append(u['user'])
for u in uid:
uids.append(u['user'])
users = User.objects.filter(id__in=uids).only('username')
elif form.cleaned_data['type'] == '4':
users = User.objects.filter(email__icontains=form.cleaned_data['username']).only('username')
@@ -315,4 +328,3 @@ def set_apipasswd(request):
form = APIPasswordForm() # An unbound form
return render_to_response('sso/apipassword.html', locals(), context_instance=RequestContext(request))