Commit 84af54b2 by Arbab Nazar

Merge pull request #8848 from edx/arbab/cert-whitelist-mod

modify the whitelist cert script to take list of users
parents bee837be 21832bb9
......@@ -12,6 +12,18 @@ from certificates.models import CertificateWhitelist
from django.contrib.auth.models import User
def get_user_from_identifier(identifier):
"""
This function takes the string identifier and fetch relevant user object from database
"""
identifier = identifier.strip()
if '@' in identifier:
user = User.objects.get(email=identifier)
else:
user = User.objects.get(username=identifier)
return user
class Command(BaseCommand):
help = """
......@@ -57,6 +69,17 @@ class Command(BaseCommand):
if not course_id:
raise CommandError("You must specify a course-id")
def update_user_whitelist(username, add=True):
"""
Update the status of whitelist user(s)
"""
user = get_user_from_identifier(username)
cert_whitelist, _created = CertificateWhitelist.objects.get_or_create(
user=user, course_id=course
)
cert_whitelist.whitelist = add
cert_whitelist.save()
# try to parse the serialized course key into a CourseKey
try:
course = CourseKey.from_string(course_id)
......@@ -69,19 +92,11 @@ class Command(BaseCommand):
if options['add'] or options['del']:
user_str = options['add'] or options['del']
if '@' in user_str:
user = User.objects.get(email=user_str)
else:
user = User.objects.get(username=user_str)
cert_whitelist, _created = \
CertificateWhitelist.objects.get_or_create(
user=user, course_id=course)
if options['add']:
cert_whitelist.whitelist = True
elif options['del']:
cert_whitelist.whitelist = False
cert_whitelist.save()
add_to_whitelist = True if options['add'] else False
users_list = user_str.split(",")
for username in users_list:
if username.strip():
update_user_whitelist(username, add=add_to_whitelist)
whitelist = CertificateWhitelist.objects.filter(course_id=course)
wl_users = '\n'.join(
......
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