♻️(backend) refactor post hackathon to a first working version
This project was copied and hacked to make a POC in a 2-day hackathon. We need to clean and refactor things in order to get a first version of the product we want.
This commit is contained in:
committed by
Samuel Paccoud
parent
0a3e26486e
commit
0f9327a1de
@@ -1,22 +1,24 @@
|
||||
"""Management user to create a superuser."""
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
UserModel = get_user_model()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Create a superuser with an email and a password'
|
||||
"""Management command to create a superuser from and email and password."""
|
||||
|
||||
help = "Create a superuser with an email and a password"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
"""Define required arguments "email" and "password"."""
|
||||
parser.add_argument(
|
||||
"--email",
|
||||
help=(
|
||||
"Email for the user."
|
||||
),
|
||||
help=("Email for the user."),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--password",
|
||||
help='Password for the user.',
|
||||
help="Password for the user.",
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
@@ -24,13 +26,12 @@ class Command(BaseCommand):
|
||||
Given an email and a password, create a superuser or upgrade the existing
|
||||
user to superuser status.
|
||||
"""
|
||||
UserModel = get_user_model()
|
||||
email = options.get('email')
|
||||
email = options.get("email")
|
||||
try:
|
||||
user = UserModel.objects.get(email=email)
|
||||
user = UserModel.objects.get(admin_email=email)
|
||||
except UserModel.DoesNotExist:
|
||||
user = UserModel(email=email)
|
||||
message = 'Superuser created successfully.'
|
||||
user = UserModel(admin_email=email)
|
||||
message = "Superuser created successfully."
|
||||
else:
|
||||
if user.is_superuser and user.is_staff:
|
||||
message = "Superuser already exists."
|
||||
@@ -39,7 +40,7 @@ class Command(BaseCommand):
|
||||
|
||||
user.is_superuser = True
|
||||
user.is_staff = True
|
||||
user.set_password(options['password'])
|
||||
user.set_password(options["password"])
|
||||
user.save()
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(message))
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
from django.contrib.auth.management.commands.createsuperuser import Command as BaseCommand
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Create a superuser without a username field'
|
||||
|
||||
def handle(self, *args, **options):
|
||||
# Check if a superuser already exists
|
||||
try:
|
||||
self.UserModel._default_manager.db_manager(options['database']).get(
|
||||
is_superuser=True,
|
||||
)
|
||||
except self.UserModel.DoesNotExist:
|
||||
# If not, create a superuser without a username
|
||||
email = options.get('email')
|
||||
password = options.get('password')
|
||||
self.UserModel._default_manager.db_manager(options['database']).create_superuser(
|
||||
email=email,
|
||||
password=password,
|
||||
)
|
||||
self.stdout.write(self.style.SUCCESS('Superuser created successfully.'))
|
||||
except ValidationError as e:
|
||||
self.stderr.write(self.style.ERROR(f'Error creating superuser: {", ".join(e.messages)}'))
|
||||
Reference in New Issue
Block a user