Skip to content

Commit

Permalink
Merge pull request openedx#850 from MITx/feature/jarv/staff-account
Browse files Browse the repository at this point in the history
Adding django-admin/rake command to set the staff bit
  • Loading branch information
cpennington committed Oct 10, 2012
2 parents 2531962 + dabad4f commit 66d9a9c
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
37 changes: 37 additions & 0 deletions common/djangoapps/student/management/commands/set_staff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from django.contrib.auth.models import User
from django.core.management.base import BaseCommand, CommandError
import re


class Command(BaseCommand):

args = '<user/email user/email ...>'
help = """
This command will set isstaff to true for one or more users.
Lookup by username or email address, assumes usernames
do not look like email addresses.
"""

def handle(self, *args, **kwargs):

if len(args) < 1:
print Command.help
return

for user in args:

if re.match('[^@]+@[^@]+\.[^@]+', user):
try:
v = User.objects.get(email=user)
except:
raise CommandError("User {0} does not exist".format(
user))
else:
try:
v = User.objects.get(username=user)
except:
raise CommandError("User {0} does not exist".format(
user))

v.is_staff = True
v.save()
6 changes: 6 additions & 0 deletions rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,12 @@ task "django-admin", [:action, :system, :env, :options] => [:predjango] do |t, a
sh(django_admin(args.system, args.env, args.action, args.options))
end

desc "Set the staff bit for a user"
task :set_staff, [:user, :system, :env] do |t, args|
args.with_defaults(:env => 'dev', :system => 'lms', :options => '')
sh(django_admin(args.system, args.env, 'set_staff', args.user))
end

task :package do
FileUtils.mkdir_p(BUILD_DIR)

Expand Down

0 comments on commit 66d9a9c

Please sign in to comment.