44 lines
1.4 KiB
Python
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()
|