From 3babf5392584350a2d34a0076b6bdaa4bb3bf521 Mon Sep 17 00:00:00 2001 From: cahrens Date: Thu, 27 Jun 2013 09:44:09 -0400 Subject: [PATCH] Handle the case of script being terminated before the user was deleted. --- .../management/commands/populate_creators.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cms/djangoapps/contentstore/management/commands/populate_creators.py b/cms/djangoapps/contentstore/management/commands/populate_creators.py index e9453025a0..28f360bacf 100644 --- a/cms/djangoapps/contentstore/management/commands/populate_creators.py +++ b/cms/djangoapps/contentstore/management/commands/populate_creators.py @@ -2,13 +2,23 @@ from auth.authz import _grant_instructors_creator_access from django.core.management.base import BaseCommand from django.contrib.auth.models import User +from django.db.utils import IntegrityError class Command(BaseCommand): help = 'Grants all users with INSTRUCTOR role permission to create courses' def handle(self, *args, **options): - admin = User.objects.create_user('populate_creators_command', 'grant+creator+access@edx.org', 'foo') - admin.is_staff = True + username = 'populate_creators_command' + email = 'grant+creator+access@edx.org' + try: + admin = User.objects.create_user(username, email, 'foo') + admin.is_staff = True + admin.save() + except IntegrityError: + # If the script did not complete the last time it was run, + # the admin user will already exist. + admin = User.objects.get(username=username, email=email) + _grant_instructors_creator_access(admin) admin.delete()