codigo0/docs/CHECKLIST_SISTEMA_VALIDACION.md

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ón
    • POST /api/validation/approve/:contentId - Aprobar
    • POST /api/validation/reject/:contentId - Rechazar
    • POST /api/validation/publish/:contentId - Publicar
    • GET /api/validation/pending - Listar pendientes
    • GET /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

  1. super_admin - * (todos los permisos)
  2. admin - Gestión completa
  3. editor_clinico - Protocolos, fármacos, checklists
  4. editor_formativo - Guías y manual
  5. tes_validador - Validar contenido
  6. formador - Crear contenido formativo
  7. medico - Validar y publicar
  8. revisor - Revisar y aprobar
  9. viewer - Solo lectura

Permisos por Acción

  • content:read - Ver contenido
  • content:write - Escribir cualquier contenido
  • content:write:protocol - Escribir protocolos
  • content:write:guide - Escribir guías
  • content:write:drug - Escribir fármacos
  • content:write:checklist - Escribir checklists
  • content:write:manual - Escribir manual
  • content:submit - Enviar a revisión
  • content:validate - Validar contenido
  • content:approve - Aprobar contenido
  • content:publish - Publicar contenido
  • audit:read - Leer auditoría
  • audit: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!