4.2 KiB
4.2 KiB
✅ CHECKLIST - Sistema de Validación y Roles
Fecha: 2025-01-06
Estado: ✅ Implementado
✅ COMPONENTES IMPLEMENTADOS
Backend
-
Sistema de Roles Mejorado (
backend/src/middleware/auth.js)- 9 roles definidos
- Permisos granulares por rol
- Middleware
requirePermission
-
API de Validación (
backend/src/routes/validation.js)POST /api/validation/submit/:contentId- Enviar a revisiónPOST /api/validation/approve/:contentId- AprobarPOST /api/validation/reject/:contentId- RechazarPOST /api/validation/publish/:contentId- PublicarGET /api/validation/pending- Listar pendientesGET /api/validation/history/:contentId- Historial
-
Registro en Audit Log
- Todas las acciones registradas
- Metadata completa
- Usuario y rol registrados
Frontend
-
Página de Validación (
admin-panel/src/pages/ValidationPage.tsx)- Listar contenido pendiente
- Filtros por tipo y prioridad
- Modal de validación
- Aprobar con notas
- Rechazar con notas obligatorias
- Opción de publicar al aprobar
-
Integración en Biblioteca (
admin-panel/src/pages/ContentLibraryPage.tsx)- Botón "Enviar a revisión"
- Solo visible para contenido en
draft - Requiere permiso
content:submit
-
Navegación
- Enlace "Validación" en sidebar
- Icono ShieldCheck
📋 FLUJO DE VALIDACIÓN
Estados
- ✅
draft- Borrador (editable) - ✅
in_review- En revisión (pendiente de validación) - ✅
approved- Aprobado (listo para publicar) - ✅
published- Publicado (visible en app) - ✅
archived- Archivado (oculto)
Transiciones
- ✅
draft → in_review- Enviar a revisión - ✅
in_review → approved- Aprobar - ✅
in_review → published- Aprobar y publicar - ✅
in_review → draft- Rechazar - ✅
approved → published- Publicar
👥 ROLES Y PERMISOS
Roles Implementados
- super_admin -
*(todos los permisos) - admin - Gestión completa
- editor_clinico - Protocolos, fármacos, checklists
- editor_formativo - Guías y manual
- tes_validador - Validar contenido
- formador - Crear contenido formativo
- medico - Validar y publicar
- revisor - Revisar y aprobar
- viewer - Solo lectura
Permisos por Acción
content:read- Ver contenidocontent:write- Escribir cualquier contenidocontent:write:protocol- Escribir protocoloscontent:write:guide- Escribir guíascontent:write:drug- Escribir fármacoscontent:write:checklist- Escribir checklistscontent:write:manual- Escribir manualcontent:submit- Enviar a revisióncontent:validate- Validar contenidocontent:approve- Aprobar contenidocontent:publish- Publicar contenidoaudit:read- Leer auditoríaaudit:write- Escribir auditoría
🧪 TESTING
Probar Envío a Revisión
# 1. Ir a http://localhost:5174/content
# 2. Buscar contenido en estado "draft"
# 3. Click en icono "Enviar" (Send)
# 4. Confirmar
# 5. Verificar que cambia a "in_review"
Probar Validación
# 1. Ir a http://localhost:5174/validation
# 2. Ver lista de contenido pendiente
# 3. Click en "Validar"
# 4. Aprobar o Rechazar
# 5. Añadir notas
# 6. Verificar cambio de estado
Verificar API
# Listar pendientes
TOKEN=$(curl -s -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@emerges-tes.local","password":"Admin123!"}' \
| python3 -c "import sys, json; print(json.load(sys.stdin)['token'])")
curl -X GET "http://localhost:3000/api/validation/pending" \
-H "Authorization: Bearer $TOKEN"
✅ VERIFICACIÓN
Checklist de Funcionalidades
- Roles definidos correctamente
- Permisos funcionando
- Flujo de validación completo
- API de validación funcionando
- Página de validación accesible
- Botón "Enviar a revisión" visible
- Registro en audit log
- Navegación actualizada
✅ Sistema de validación y roles implementado y funcionando!