38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.contrib.auth.models import User
|
|
from decouple import config
|
|
import sys
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Create admin user from environment variables'
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument(
|
|
'--force',
|
|
action='store_true',
|
|
help='Create admin user even if one already exists',
|
|
)
|
|
|
|
def handle(self, *args, **options):
|
|
# Get credentials from environment variables
|
|
username = config('ADMIN_USERNAME', default='admin')
|
|
password = config('ADMIN_PASSWORD', default='admin123')
|
|
email = config('ADMIN_EMAIL', default='admin@boulangerie.fr')
|
|
|
|
# Check if admin user already exists
|
|
if User.objects.filter(username=username).exists() and not options['force']:
|
|
self.stdout.write(
|
|
self.style.WARNING(f'Admin user "{username}" already exists')
|
|
)
|
|
return
|
|
|
|
# Create the admin user
|
|
user = User.objects.create_superuser(
|
|
username=username,
|
|
email=email,
|
|
password=password
|
|
)
|
|
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'Successfully created admin user "{username}"')
|
|
) |