NDOJ/judge/management/commands/adduser.py
2022-05-14 12:57:27 -05:00

44 lines
1.4 KiB
Python

from django.conf import settings
from django.contrib.auth.models import User
from django.core.management.base import BaseCommand
from judge.models import Language, Profile
class Command(BaseCommand):
help = "creates a user"
def add_arguments(self, parser):
parser.add_argument("name", help="username")
parser.add_argument("email", help="email, not necessary to be resolvable")
parser.add_argument("password", help="password for the user")
parser.add_argument(
"language",
nargs="?",
default=settings.DEFAULT_USER_LANGUAGE,
help="default language ID for user",
)
parser.add_argument(
"--superuser",
action="store_true",
default=False,
help="if specified, creates user with superuser privileges",
)
parser.add_argument(
"--staff",
action="store_true",
default=False,
help="if specified, creates user with staff privileges",
)
def handle(self, *args, **options):
usr = User(username=options["name"], email=options["email"], is_active=True)
usr.set_password(options["password"])
usr.is_superuser = options["superuser"]
usr.is_staff = options["staff"]
usr.save()
profile = Profile(user=usr)
profile.language = Language.objects.get(key=options["language"])
profile.save()