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

View File

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

View File

@@ -15,16 +15,18 @@ from services import get_api
## Exceptions ## Exceptions
class CorporateOnlyService(Exception): class CorporateOnlyService(Exception):
pass pass
class ExistingUser(Exception): class ExistingUser(Exception):
pass pass
class ServiceError(Exception): class ServiceError(Exception):
pass pass
## Models
class SSOUser(models.Model): class SSOUser(models.Model):
""" Extended SSO User Profile options """ """ Extended SSO User Profile options """
@@ -43,6 +45,7 @@ class SSOUser(models.Model):
signals.post_save.connect(SSOUser.create_user_profile, sender=User) signals.post_save.connect(SSOUser.create_user_profile, sender=User)
class SSOUserNote(models.Model): class SSOUserNote(models.Model):
""" Notes bound to a user's account. Used to store information regarding the user """ """ 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.contrib.auth.models import User
from django.db.models import signals from django.db.models import signals
# Signals that the tasks need to listen for # Signals that the tasks need to listen for
def eveapi_deleted(sender, instance, **kwargs): def eveapi_deleted(sender, instance, **kwargs):
if instance.user: if instance.user:
@@ -14,7 +15,10 @@ signals.post_delete.connect(eveapi_deleted, sender=EVEAccount)
@task() @task()
def update_user_access(user, **kwargs): 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) user = User.objects.get(id=user)
@@ -71,6 +75,7 @@ def update_user_access(user, **kwargs):
update_service_groups.delay(user_id=user.id) update_service_groups.delay(user_id=user.id)
@task(ignore_result=True) @task(ignore_result=True)
def update_service_groups(user_id): def update_service_groups(user_id):
for service in ServiceAccount.objects.filter(user=user_id, active=True).select_related('service__api'): 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: else:
return render_to_response('sso/index.html', context_instance=RequestContext(request)) return render_to_response('sso/index.html', context_instance=RequestContext(request))
@login_required @login_required
def profile(request): def profile(request):
""" Displays the user's profile page """ """ 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)) return render_to_response('sso/profile.html', locals(), context_instance=RequestContext(request))
@login_required @login_required
def characters(request, charid=0): def characters(request, charid=0):
""" Provide a list of characters, or a indivdual character sheet """ """ 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') 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)) return render_to_response('sso/characterlist.html', locals(), context_instance=RequestContext(request))
@login_required @login_required
def eveapi_add(request): def eveapi_add(request):
""" Add a EVE API key to a user's account """ """ 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)) return render_to_response('sso/eveapi.html', locals(), context_instance=RequestContext(request))
@login_required @login_required
def eveapi_del(request, userid=0): def eveapi_del(request, userid=0):
""" Delete a EVE API key from a account """ """ Delete a EVE API key from a account """
@@ -94,6 +98,7 @@ def eveapi_del(request, userid=0):
return redirect('sso.views.profile') return redirect('sso.views.profile')
@login_required @login_required
def eveapi_refresh(request, userid=0): def eveapi_refresh(request, userid=0):
""" Force refresh a EVE API key """ """ Force refresh a EVE API key """
@@ -118,6 +123,7 @@ def eveapi_refresh(request, userid=0):
return redirect('sso.views.profile') return redirect('sso.views.profile')
@login_required @login_required
def eveapi_log(request, userid=0): def eveapi_log(request, userid=0):
""" Provides a list of access logs for a specific EVE API key """ """ 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') return redirect('sso.views.profile')
@login_required @login_required
def service_add(request): def service_add(request):
""" Add a service to a user's account """ """ 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()) return render_to_response('sso/serviceaccount/index.html', locals())
@login_required @login_required
def service_del(request, serviceid=0): def service_del(request, serviceid=0):
""" Delete a service from a user's account """ """ Delete a service from a user's account """
@@ -205,6 +213,7 @@ def service_del(request, serviceid=0):
return redirect('sso.views.profile') return redirect('sso.views.profile')
@login_required @login_required
def service_reset(request, serviceid=0): def service_reset(request, serviceid=0):
""" Reset a user's password on a service """ """ Reset a user's password on a service """
@@ -240,6 +249,7 @@ def service_reset(request, serviceid=0):
return redirect('sso.views.profile') return redirect('sso.views.profile')
@login_required @login_required
def user_view(request, username=None): def user_view(request, username=None):
""" View a user's profile as a admin """ """ 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)) return render_to_response('sso/lookup/user.html', locals(), context_instance=RequestContext(request))
@login_required @login_required
def user_lookup(request): def user_lookup(request):
""" Lookup a user's account by providing a matching criteria """ """ 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') users = User.objects.filter(username__icontains=form.cleaned_data['username']).only('username')
elif form.cleaned_data['type'] == '2': elif form.cleaned_data['type'] == '2':
uid = EVEAccount.objects.filter(characters__name__icontains=form.cleaned_data['username']).values('user') 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') users = User.objects.filter(id__in=uids).only('username')
elif installed('reddit') and form.cleaned_data['type'] == '3': elif installed('reddit') and form.cleaned_data['type'] == '3':
from reddit.models import RedditAccount from reddit.models import RedditAccount
uid = RedditAccount.objects.filter(username__icontains=form.cleaned_data['username']).values('user') 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') users = User.objects.filter(id__in=uids).only('username')
elif form.cleaned_data['type'] == '4': elif form.cleaned_data['type'] == '4':
users = User.objects.filter(email__icontains=form.cleaned_data['username']).only('username') 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 form = APIPasswordForm() # An unbound form
return render_to_response('sso/apipassword.html', locals(), context_instance=RequestContext(request)) return render_to_response('sso/apipassword.html', locals(), context_instance=RequestContext(request))