diff --git a/benefits/superuser.py b/benefits/superuser.py new file mode 100644 index 000000000..c4c3ab2f4 --- /dev/null +++ b/benefits/superuser.py @@ -0,0 +1,20 @@ +import os +import logging + +from django.contrib.auth import get_user_model + +logger = logging.getLogger(__name__) + +User = get_user_model() # get the currently active user model + +username = os.environ.get("DJANGO_SUPERUSER_USERNAME") +user = User.objects.filter(username=username) + +if user.exists(): + logger.debug("Skipping superuser creation since it already exists") +else: + email = os.environ.get("DJANGO_SUPERUSER_EMAIL") + password = os.environ.get("DJANGO_SUPERUSER_PASSWORD") + + logger.debug("Creating superuser") + User.objects.create_superuser(username, email, password) diff --git a/bin/init.sh b/bin/init.sh index 8a11d863e..e24f64357 100755 --- a/bin/init.sh +++ b/bin/init.sh @@ -23,7 +23,7 @@ python manage.py migrate # check DJANGO_ADMIN = true, default to false if empty or unset if [[ ${DJANGO_ADMIN:-false} = true ]]; then - python manage.py createsuperuser --no-input + cat benefits/superuser.py | python manage.py shell else echo "superuser: Django not configured for Admin access" fi