Saltar al contenido principal

RF61: Administrador elimina curso

Descripción

Como administrador, quiero eliminar (o despublicar) un curso para retirar contenido obsoleto o incorrecto del catálogo.

Operación restringida por control de acceso por roles (RBAC): solo usuarios con rol admin pueden ejecutarla (Compliance §5.1 — RBAC). Se favorece el borrado lógico (despublicar/archivar) para no romper inscripciones y certificados existentes.

CampoValor
MóduloCourses Module (administración)
ActorAdministrador (rol admin)
EndpointDELETE /admin/courses/:id
PrecondicionesSesión activa con rol admin
PrioridadBaja (post-MVP)
EtapaMBI 1
Requisitos relacionadosRF60, RF62

Reglas de negocio

  • RN-61.1 — Solo el rol admin (validado en el backend, no en el cliente) puede eliminar cursos.
  • RN-61.2 — Por defecto se hace borrado lógico (despublicar/archivar) para preservar inscripciones, progreso y certificados.
  • RN-61.3 — Un curso archivado deja de aparecer en el catálogo (RF47) pero conserva su historial.
  • RN-61.4 — La acción se registra en el log de auditoría (quién, cuándo, qué curso).

Validaciones de entrada

CampoReglasMensaje de error
idObligatorio. Curso existente."Curso no encontrado." (404)
RolDebe ser admin."No tienes permisos para esta acción." (403)
AuthorizationBearer válido."Sesión no válida." (401)

Criterios de aceptación

Escenario 1: Eliminación (lógica) exitosa

Dado que soy administrador, Cuando elimino un curso, Entonces el sistema lo archiva/despublica, Y responde 200 OK, Y el curso desaparece del catálogo conservando su historial.

Escenario 2: Usuario sin rol admin (seguridad)

Dado que soy un usuario sin rol admin, Cuando intento eliminar un curso, Entonces el sistema responde 403 Forbidden, Y registra el intento.

Escenario 3: Curso inexistente

Dado que envío un id que no existe, Cuando intento eliminar, Entonces el sistema responde 404 Not Found.

Escenario 4: Auditoría

Dado que se elimina un curso, Cuando la operación se completa, Entonces se registra el evento de auditoría (admin, fecha, curso).

Criterios no funcionales

  • RBAC validado en backend; auditoría obligatoria.
  • Comunicación TLS 1.2+.

Diagrama de secuencia