Saltar a contenido

Multi-tenant y seguridad

TenantModel

TenantModel agrega el campo tenant y dos managers:

Manager Uso
objects Filtrado automático por tenant actual.
all_objects Acceso sin filtro, solo para tareas controladas.

TenantMiddleware obtiene el tenant del usuario autenticado y lo guarda en el request y en almacenamiento local al hilo.

Autorización

El panel usa permisos Django. Las vistas administrativas declaran permisos como convocatorias.view_convocatoria o padron.view_beneficiario.

PermisoRequeridoMixin bloquea el acceso cuando el usuario no tiene permiso y registra el intento para auditoría.

Historial

La aplicación combina:

  • RegistroAuditoria, para eventos explícitos del negocio;
  • django-pghistory, para cambios históricos en modelos;
  • TenantHistoryEvent, para aislar historial por tenant.

Superusuarios

Los superusuarios tienen alcance técnico amplio. No deben usarse como cuentas operativas diarias de un tenant.