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.