production-taskbar / backend / config / management / commands / inituser.py
inituser.py
Raw
# type: ignore
from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import User


class Command(BaseCommand):
    help = f'Initialize default user'

    def handle(self, *args, **options):
        username = 'user'
        password = 'user'    #NOSONAR
        try:
            user = User.objects.filter(username=username).first()
            if not user:
                user = User.objects.create_user(email='',
                                                username=username,
                                                password=password)

                user.is_active = True
                user.is_staff = True
                user.save()
                self.stdout.write(
                    self.style.SUCCESS(
                        f'inituser => staff {username} with password {password} created.'
                    ))
            else:
                self.stdout.write(
                    self.style.WARNING(
                        f'inituser => {username} already exists (superuser: {user.is_superuser}, is staff: {user.is_staff}, active: {user.is_active})'
                    ))
        except Exception as e:
            self.stdout.write(
                self.style.ERROR(
                    f'inituser => error on creating {username}: {e}'))