codigo0/docs/CHECKLIST_SISTEMA_VALIDACION.md

158 lines
4.2 KiB
Markdown
Raw Normal View History

2026-01-19 08:10:16 +00:00
# ✅ CHECKLIST - Sistema de Validación y Roles
**Fecha:** 2025-01-06
**Estado:** ✅ Implementado
---
## ✅ COMPONENTES IMPLEMENTADOS
### Backend
- [x] **Sistema de Roles Mejorado** (`backend/src/middleware/auth.js`)
- [x] 9 roles definidos
- [x] Permisos granulares por rol
- [x] Middleware `requirePermission`
- [x] **API de Validación** (`backend/src/routes/validation.js`)
- [x] `POST /api/validation/submit/:contentId` - Enviar a revisión
- [x] `POST /api/validation/approve/:contentId` - Aprobar
- [x] `POST /api/validation/reject/:contentId` - Rechazar
- [x] `POST /api/validation/publish/:contentId` - Publicar
- [x] `GET /api/validation/pending` - Listar pendientes
- [x] `GET /api/validation/history/:contentId` - Historial
- [x] **Registro en Audit Log**
- [x] Todas las acciones registradas
- [x] Metadata completa
- [x] Usuario y rol registrados
### Frontend
- [x] **Página de Validación** (`admin-panel/src/pages/ValidationPage.tsx`)
- [x] Listar contenido pendiente
- [x] Filtros por tipo y prioridad
- [x] Modal de validación
- [x] Aprobar con notas
- [x] Rechazar con notas obligatorias
- [x] Opción de publicar al aprobar
- [x] **Integración en Biblioteca** (`admin-panel/src/pages/ContentLibraryPage.tsx`)
- [x] Botón "Enviar a revisión"
- [x] Solo visible para contenido en `draft`
- [x] Requiere permiso `content:submit`
- [x] **Navegación**
- [x] Enlace "Validación" en sidebar
- [x] 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
```bash
# 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
```bash
# 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
```bash
# 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
- [x] Roles definidos correctamente
- [x] Permisos funcionando
- [x] Flujo de validación completo
- [x] API de validación funcionando
- [x] Página de validación accesible
- [x] Botón "Enviar a revisión" visible
- [x] Registro en audit log
- [x] Navegación actualizada
---
**✅ Sistema de validación y roles implementado y funcionando!**