From 680570696c67eb90ba26a7ea74fe94595f5b43db Mon Sep 17 00:00:00 2001 From: Harry Bridge Date: Wed, 28 Feb 2018 16:10:18 +0000 Subject: [PATCH] User creation management commands --- management/__init__.py | 0 management/commands/__init__.py | 0 management/commands/createBaseUsers.py | 26 ++++++++++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 management/__init__.py create mode 100644 management/commands/__init__.py create mode 100644 management/commands/createBaseUsers.py diff --git a/management/__init__.py b/management/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/management/commands/__init__.py b/management/commands/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/management/commands/createBaseUsers.py b/management/commands/createBaseUsers.py new file mode 100644 index 00000000..8bf0437a --- /dev/null +++ b/management/commands/createBaseUsers.py @@ -0,0 +1,26 @@ +from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User + +from django.conf import settings + + +class Command(BaseCommand): + help = 'Creates a super user' + + def handle(self, *args, **options): + if not (settings.DEBUG or settings.STAGING): + raise CommandError('You cannot run this command in production') + + self.create_user_object('super', True, True) + self.create_user_object('staff', True) + self.create_user_object('basic') + + def create_user_object(self, name, staff=False, superuser=False): + user, created = User.objects.get_or_create( + username=name, defaults={'email': '{}@{}.com'.format(name, name), + 'first_name': name.title(), 'last_name': 'User', 'is_superuser': superuser, + 'is_staff': staff}) + + if created: + user.set_password(name) + user.save() \ No newline at end of file