29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from django.db.models.signals import post_save
|
|
from django.dispatch import receiver
|
|
|
|
from .models import Organizacion, UsoAlmacenamiento
|
|
|
|
|
|
@receiver(post_save, sender=Organizacion)
|
|
def crear_uso_almacenamiento(sender, instance, created, **kwargs):
|
|
if created:
|
|
UsoAlmacenamiento.objects.create(organizacion=instance, espacio_utilizado=0)
|
|
|
|
|
|
@receiver(post_save, sender=Organizacion)
|
|
def crear_roles_default(sender, instance, created, **kwargs):
|
|
"""Al crear una organización nueva, genera automáticamente los 5 roles por defecto
|
|
con sus permisos. Depende de que el catálogo RolePermission ya exista (post-migration)."""
|
|
if not created:
|
|
return
|
|
try:
|
|
from api.rbac.roles import crear_roles_para_organizacion
|
|
crear_roles_para_organizacion(instance)
|
|
except Exception:
|
|
# Si la app rbac aún no está migrada (ej. primer deploy), no bloquear la creación de org
|
|
import logging
|
|
logging.getLogger(__name__).warning(
|
|
'No se pudieron crear roles para org %s — verifica que rbac esté migrado.',
|
|
instance.id,
|
|
)
|