def create_roles() -> None: from django.contrib.auth.models import Group, Permission from django.contrib.contenttypes.models import ContentType from apps.users.models import CustomUser from apps.orders.models import Product, ShoppingCar # Crear grupos superadmin_group, created = Group.objects.get_or_create(name='Super Administrador') admin_group, created = Group.objects.get_or_create(name='Administrador') client_group, created = Group.objects.get_or_create(name='Cliente') # Obtener permisos # Permisos para CustomUser user_content_type = ContentType.objects.get_for_model(CustomUser) user_permissions = Permission.objects.filter(content_type=user_content_type) product_content_type = ContentType.objects.get_for_model(Product) product_permissions = Permission.objects.filter(content_type=product_content_type) shoppingcar_product_content_type = ContentType.objects.get_for_model(ShoppingCar) shoppingcar_permissions = Permission.objects.filter(content_type=shoppingcar_content_type) # Asignar permisos a Super Administrador superadmin_content_type = ContentType.objects.get_for_models() superadmin_group.permissions.set(Permission.objects.filter(content_type__in=superadmin_content_type)) # Asignar permisos a Administrador admin_permissions = user_permissions.filter(codename__in=['add_customuser', 'change_customuser', 'view_customuser']) | \ useraddress_permissions.filter(codename__in=['add_useraddress', 'change_useraddress', 'view_useraddress']) | \ product_permissions.filter(codename__in=['add_product', 'change_product', 'view_product']) | \ shoppingcar_permissions.filter(codename__in=['view_shoppingcar']) admin_group.permissions.set(admin_permissions) # Asignar permisos a Cliente client_permissions = user_permissions | useraddress_permissions | shoppingcar_permissions | \ product_permissions.filter(codename__in=['view_order']) client_group.permissions.set(client_permissions)