mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-05-24 02:02:23 -04:00
41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
import os
|
|
|
|
from django.contrib.auth.models import User
|
|
from django.core.management.base import BaseCommand, CommandError
|
|
|
|
|
|
class Command(BaseCommand):
|
|
|
|
help = """
|
|
Creates a Django superuser based on env variables.
|
|
""".replace(" ", "")
|
|
|
|
def handle(self, *args, **options):
|
|
|
|
PAPERLESS_ADMIN_USER = os.getenv('PAPERLESS_ADMIN_USER')
|
|
PAPERLESS_ADMIN_MAIL = os.getenv('PAPERLESS_ADMIN_MAIL', 'root@localhost')
|
|
PAPERLESS_ADMIN_PASSWORD = os.getenv('PAPERLESS_ADMIN_PASSWORD')
|
|
|
|
# If PAPERLESS_ADMIN_USER env variable is set
|
|
if PAPERLESS_ADMIN_USER:
|
|
try:
|
|
# Check if user exists already, leave as is if it does
|
|
if User.objects.filter(
|
|
username=PAPERLESS_ADMIN_USER).exists():
|
|
self.stdout.write(
|
|
f'The user "{PAPERLESS_ADMIN_USER}" already exists! Leaving user as is.')
|
|
elif PAPERLESS_ADMIN_PASSWORD:
|
|
# Create superuser based on env variables
|
|
User.objects.create_superuser(
|
|
PAPERLESS_ADMIN_USER, PAPERLESS_ADMIN_MAIL, PAPERLESS_ADMIN_PASSWORD)
|
|
self.stdout.write(
|
|
f'Created superuser "{PAPERLESS_ADMIN_USER}" with provided password.')
|
|
else:
|
|
self.stdout.write(
|
|
f'Did not create superuser "{PAPERLESS_ADMIN_USER}".')
|
|
self.stdout.write(
|
|
'Make sure you specified "PAPERLESS_ADMIN_PASSWORD" in your "docker-compose.env" file.')
|
|
except Exception as error:
|
|
self.stdout.write(
|
|
f'Exception occured while creating superuser: {error}')
|