aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar scragly <[email protected]>2019-09-28 07:17:17 +1000
committerGravatar scragly <[email protected]>2019-09-28 07:17:17 +1000
commit6d9dcc30f8b73aff8d0f663ddedd28b5642a998d (patch)
tree89b24c7f553dd37d37250501a04e651d13234855
parentCreate custom manage.py entry point, remove scripts and merge Dockerfile. (diff)
Automatically create a default bot api token for dev.
-rwxr-xr-xmanage.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/manage.py b/manage.py
index 8838b810..411e74d7 100755
--- a/manage.py
+++ b/manage.py
@@ -15,7 +15,8 @@ from django.core.management import call_command, execute_from_command_line
DEFAULT_ENVS = {
"DJANGO_SETTINGS_MODULE": "pydis_site.settings",
"SUPER_USERNAME": "admin",
- "SUPER_PASSWORD": "admin"
+ "SUPER_PASSWORD": "admin",
+ "DEFAULT_BOT_API_KEY": "badbot13m0n8f570f942013fc818f234916ca531",
}
@@ -34,8 +35,8 @@ class SiteManager:
Options:
--debug Runs a development server with debug mode enabled.
- --silent Sets no output in console for preparation commands.
- --verbose Sets verbose output for preparation commands.
+ --silent Sets minimal console output.
+ --verbose Sets verbose console output.
"""
def __init__(self, args: List[str]):
@@ -58,12 +59,27 @@ class SiteManager:
name = os.environ["SUPER_USERNAME"]
password = os.environ["SUPER_PASSWORD"]
+ bot_token = os.environ["DEFAULT_BOT_API_KEY"]
user = get_user_model()
+ # Get or create admin superuser.
if user.objects.filter(username=name).exists():
- return print('Admin superuser already exists')
-
- user.objects.create_superuser(name, '', password)
+ user = user.objects.get(username=name)
+ print('Admin superuser already exists.')
+ else:
+ user = user.objects.create_superuser(name, '', password)
+ print('Admin superuser created.')
+
+ # Setup a default bot token to connect with site API
+ from rest_framework.authtoken.models import Token
+ token, is_new = Token.objects.update_or_create(user=user)
+ if token.key != bot_token:
+ token.delete()
+ token, is_new = Token.objects.update_or_create(user=user, key=bot_token)
+ if is_new:
+ print(f"New bot token created: {token}")
+ else:
+ print(f"Existing bot token found: {token}")
@staticmethod
def wait_for_postgres() -> None: