From 5e8e3353ca6ec843e8e0bc13ff1d266ad013edf4 Mon Sep 17 00:00:00 2001 From: cahrens Date: Mon, 8 Jul 2013 16:07:02 -0400 Subject: [PATCH] Pylint/pep8 cleanup. --- cms/djangoapps/course_creators/admin.py | 4 +++ cms/djangoapps/course_creators/views.py | 37 +++++++++++++++++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/cms/djangoapps/course_creators/admin.py b/cms/djangoapps/course_creators/admin.py index e9bc6b33d2..36e74420fd 100644 --- a/cms/djangoapps/course_creators/admin.py +++ b/cms/djangoapps/course_creators/admin.py @@ -7,6 +7,10 @@ from django.contrib import admin class CourseCreatorAdmin(admin.ModelAdmin): + """ + Admin for the course creator table. + """ + # Fields to display on the overview page. list_display = ('username', 'email', 'state', 'state_changed') readonly_fields = ('username', 'email', 'state_changed') diff --git a/cms/djangoapps/course_creators/views.py b/cms/djangoapps/course_creators/views.py index 8d2769d440..550ed9f548 100644 --- a/cms/djangoapps/course_creators/views.py +++ b/cms/djangoapps/course_creators/views.py @@ -2,26 +2,53 @@ Methods for interacting programmatically with the user creator table. """ 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'. + + 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'. + + 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. """ + 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: entry = CourseCreator(username=user.username, email=user.email, state=state) entry.save()