4ad03403aa
Build containers when image tags change / build-if-image-changed (., web, containers, main container, git.baumann.gr/adebaumann/labhelper) (push) Successful in 17s
Build containers when image tags change / build-if-image-changed (data-loader, loader, initContainers, init-container, git.baumann.gr/adebaumann/labhelper-data-loader) (push) Successful in 3s
61 lines
2.3 KiB
Python
61 lines
2.3 KiB
Python
from django.contrib.auth.models import Group, User
|
|
from django.core.management.base import BaseCommand
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Create default users and groups for LabHelper'
|
|
|
|
def handle(self, *args, **options):
|
|
self.stdout.write('Creating default users and groups...')
|
|
|
|
groups = {
|
|
'LabHelper Administrators': 'Full access to all lab functions',
|
|
'LabHelper Staff': 'Can view and search items, add things to boxes',
|
|
'LabHelper Viewers': 'Read-only access to view and search',
|
|
}
|
|
|
|
for group_name, description in groups.items():
|
|
group, created = Group.objects.get_or_create(name=group_name)
|
|
if created:
|
|
self.stdout.write(self.style.SUCCESS(f'Created group: {group_name}'))
|
|
else:
|
|
self.stdout.write(f'Group already exists: {group_name}')
|
|
|
|
users = {
|
|
'admin': ('LabHelper Administrators', True),
|
|
'staff': ('LabHelper Staff', False),
|
|
'viewer': ('LabHelper Viewers', False),
|
|
}
|
|
|
|
for username, (group_name, is_superuser) in users.items():
|
|
if User.objects.filter(username=username).exists():
|
|
self.stdout.write(f'User already exists: {username}')
|
|
continue
|
|
|
|
user = User.objects.create_user(
|
|
username=username,
|
|
email=f'{username}@labhelper.local',
|
|
password=f'{username}123',
|
|
is_superuser=is_superuser,
|
|
is_staff=is_superuser,
|
|
)
|
|
|
|
group = Group.objects.get(name=group_name)
|
|
user.groups.add(group)
|
|
|
|
if is_superuser:
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'Created superuser: {username} (password: {username}123)')
|
|
)
|
|
else:
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'Created user: {username} (password: {username}123)')
|
|
)
|
|
|
|
self.stdout.write(self.style.SUCCESS('\nDefault users and groups created successfully!'))
|
|
self.stdout.write('\nLogin credentials:')
|
|
self.stdout.write(' admin / admin123')
|
|
self.stdout.write(' staff / staff123')
|
|
self.stdout.write(' viewer / viewer123')
|
|
self.stdout.write('\nPlease change these passwords after first login!')
|