update
This commit is contained in:
120
accounts/management/commands/create_test_users.py
Normal file
120
accounts/management/commands/create_test_users.py
Normal file
@@ -0,0 +1,120 @@
|
||||
"""
|
||||
Management command to create test users for dashboard testing.
|
||||
"""
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.contrib.auth import get_user_model
|
||||
from accounts.models import UserProfile
|
||||
from django.utils import timezone
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Create test users (normal, moderator, admin) for dashboard testing'
|
||||
|
||||
def handle(self, *args, **options):
|
||||
self.stdout.write(self.style.SUCCESS('Creating test users...'))
|
||||
|
||||
# Create/Update Normal User
|
||||
normal_user, created = User.objects.get_or_create(
|
||||
username='normal_user',
|
||||
defaults={
|
||||
'email': 'normal@test.bg',
|
||||
'role': 'normal',
|
||||
'is_verified': True,
|
||||
}
|
||||
)
|
||||
normal_user.set_password('normal123')
|
||||
normal_user.role = 'normal'
|
||||
normal_user.is_verified = True
|
||||
normal_user.save()
|
||||
|
||||
if not hasattr(normal_user, 'profile'):
|
||||
UserProfile.objects.create(
|
||||
user=normal_user,
|
||||
first_name='Normal',
|
||||
last_name='User',
|
||||
consent_given=True,
|
||||
consent_date=timezone.now()
|
||||
)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(
|
||||
f'{"Created" if created else "Updated"} normal user: {normal_user.username} (password: normal123)'
|
||||
))
|
||||
|
||||
# Create/Update Moderator User
|
||||
moderator_user, created = User.objects.get_or_create(
|
||||
username='moderator',
|
||||
defaults={
|
||||
'email': 'moderator@test.bg',
|
||||
'role': 'moderator',
|
||||
'is_verified': True,
|
||||
}
|
||||
)
|
||||
moderator_user.set_password('moderator123')
|
||||
moderator_user.role = 'moderator'
|
||||
moderator_user.is_verified = True
|
||||
moderator_user.save()
|
||||
|
||||
if not hasattr(moderator_user, 'profile'):
|
||||
UserProfile.objects.create(
|
||||
user=moderator_user,
|
||||
first_name='Moderator',
|
||||
last_name='User',
|
||||
consent_given=True,
|
||||
consent_date=timezone.now()
|
||||
)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(
|
||||
f'{"Created" if created else "Updated"} moderator user: {moderator_user.username} (password: moderator123)'
|
||||
))
|
||||
|
||||
# Create/Update Admin User
|
||||
admin_user, created = User.objects.get_or_create(
|
||||
username='admin',
|
||||
defaults={
|
||||
'email': 'admin@test.bg',
|
||||
'role': 'admin',
|
||||
'is_verified': True,
|
||||
'is_staff': True,
|
||||
'is_superuser': True,
|
||||
}
|
||||
)
|
||||
admin_user.set_password('admin123')
|
||||
admin_user.role = 'admin'
|
||||
admin_user.is_verified = True
|
||||
admin_user.is_staff = True
|
||||
admin_user.is_superuser = True
|
||||
admin_user.save()
|
||||
|
||||
if not hasattr(admin_user, 'profile'):
|
||||
UserProfile.objects.create(
|
||||
user=admin_user,
|
||||
first_name='Admin',
|
||||
last_name='User',
|
||||
consent_given=True,
|
||||
consent_date=timezone.now()
|
||||
)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(
|
||||
f'{"Created" if created else "Updated"} admin user: {admin_user.username} (password: admin123)'
|
||||
))
|
||||
|
||||
self.stdout.write(self.style.SUCCESS('\n' + '='*60))
|
||||
self.stdout.write(self.style.SUCCESS('Test Users Created Successfully!'))
|
||||
self.stdout.write(self.style.SUCCESS('='*60))
|
||||
self.stdout.write(self.style.SUCCESS('\nLogin Credentials:'))
|
||||
self.stdout.write(self.style.SUCCESS('\n1. Normal User:'))
|
||||
self.stdout.write(self.style.SUCCESS(' Username: normal_user'))
|
||||
self.stdout.write(self.style.SUCCESS(' Password: normal123'))
|
||||
self.stdout.write(self.style.SUCCESS(' Dashboard: /reports/my-reports/'))
|
||||
self.stdout.write(self.style.SUCCESS('\n2. Moderator:'))
|
||||
self.stdout.write(self.style.SUCCESS(' Username: moderator'))
|
||||
self.stdout.write(self.style.SUCCESS(' Password: moderator123'))
|
||||
self.stdout.write(self.style.SUCCESS(' Dashboard: /moderation/dashboard/'))
|
||||
self.stdout.write(self.style.SUCCESS('\n3. Administrator:'))
|
||||
self.stdout.write(self.style.SUCCESS(' Username: admin'))
|
||||
self.stdout.write(self.style.SUCCESS(' Password: admin123'))
|
||||
self.stdout.write(self.style.SUCCESS(' Dashboard: /analytics/dashboard/'))
|
||||
self.stdout.write(self.style.SUCCESS('\n' + '='*60))
|
||||
|
||||
Reference in New Issue
Block a user