modern-django-starter/apps/accounts/management/commands/create_groups.py
Django Template 4bbc56a08f Initial commit: Django boilerplate with authentication, Docker, and Dokploy support
 Features:
- Complete Django project with authentication
- Email/password and social login (Google, Facebook)
- Role-based access control (admin, staff, user)
- Docker and Docker Compose setup
- Production-ready configuration
- Static file handling with WhiteNoise
- PostgreSQL database integration
- Comprehensive documentation
- GitHub CI/CD workflows
- Dokploy deployment configuration

🚀 Ready for deployment on Dokploy, Heroku, Railway, and other platforms
2025-09-11 09:36:55 +05:30

53 lines
1.8 KiB
Python

from django.core.management.base import BaseCommand
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from apps.accounts.models import User
class Command(BaseCommand):
help = 'Create default user groups with appropriate permissions'
def handle(self, *args, **options):
groups_permissions = {
'admin': [
'add_user', 'change_user', 'delete_user', 'view_user',
'add_group', 'change_group', 'delete_group', 'view_group',
],
'staff': [
'view_user', 'change_user',
'view_group',
],
'user': [
'view_user',
]
}
for group_name, permissions in groups_permissions.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(
self.style.WARNING(f'Group already exists: {group_name}')
)
for permission_name in permissions:
try:
permission = Permission.objects.get(codename=permission_name)
group.permissions.add(permission)
except Permission.DoesNotExist:
self.stdout.write(
self.style.ERROR(f'Permission not found: {permission_name}')
)
group.save()
self.stdout.write(
self.style.SUCCESS(f'Configured permissions for {group_name}')
)
self.stdout.write(
self.style.SUCCESS('Successfully created all default groups')
)