Commit 5e8e3353 by cahrens

Pylint/pep8 cleanup.

parent 2cceda94
...@@ -7,6 +7,10 @@ from django.contrib import admin ...@@ -7,6 +7,10 @@ from django.contrib import admin
class CourseCreatorAdmin(admin.ModelAdmin): class CourseCreatorAdmin(admin.ModelAdmin):
"""
Admin for the course creator table.
"""
# Fields to display on the overview page. # Fields to display on the overview page.
list_display = ('username', 'email', 'state', 'state_changed') list_display = ('username', 'email', 'state', 'state_changed')
readonly_fields = ('username', 'email', 'state_changed') readonly_fields = ('username', 'email', 'state_changed')
......
...@@ -2,26 +2,53 @@ ...@@ -2,26 +2,53 @@
Methods for interacting programmatically with the user creator table. Methods for interacting programmatically with the user creator table.
""" """
from course_creators.models import CourseCreator from course_creators.models import CourseCreator
from django.core.exceptions import PermissionDenied
from auth.authz import add_user_to_creator_group
def add_user_with_status_unrequested(user):
def add_user_with_status_unrequested(caller, user):
""" """
Adds a user to the course creator table with status 'unrequested'. Adds a user to the course creator table with status 'unrequested'.
Caller must have staff permissions.
""" """
_add_user(user, 'u') _add_user(caller, user, 'u')
def add_user_with_status_granted(user): def add_user_with_status_granted(caller, user):
""" """
Adds a user to the course creator table with status 'granted'. Adds a user to the course creator table with status 'granted'.
Caller must have staff permissions. This method also adds the user
to the course creator group maintained by authz.py.
""" """
_add_user(user, 'g') _add_user(caller, user, 'g')
add_user_to_creator_group(caller, user)
def _add_user(user, state): def get_course_creator_status(user):
"""
Returns the status for a particular user.
Possible return values are:
'g' = 'granted'
'u' = 'unrequested'
'p' = 'pending'
'd' = 'denied'
"""
user = CourseCreator.objects.filter(username=user.username)
assert user.count() == 1, "The user does not exist in the table."
return user[0].state
def _add_user(caller, user, state):
""" """
Adds a user to the course creator table with the specified state. Adds a user to the course creator table with the specified state.
""" """
if not caller.is_active or not caller.is_authenticated or not caller.is_staff:
raise PermissionDenied
if CourseCreator.objects.filter(username=user.username).count() == 0: if CourseCreator.objects.filter(username=user.username).count() == 0:
entry = CourseCreator(username=user.username, email=user.email, state=state) entry = CourseCreator(username=user.username, email=user.email, state=state)
entry.save() entry.save()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment