feat: permite rechazar (eliminar) usuarios en pending_verification

Antes solo se podia rechazar un usuario en pending_approval. Una cuenta
autorregistrada que nunca confirmo su correo quedaba en
pending_verification para siempre, sin ninguna accion disponible en
Usuarios para quitarla.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-09-10 16:00:00 -05:00
parent 5b899256b1
commit f8b80d9bb4
6 changed files with 32 additions and 16 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "project-linkedcorp-backend",
"version": "1.8.1",
"version": "1.9.0",
"private": true,
"type": "module",
"main": "src/server.js",
+7 -2
View File
@@ -79,10 +79,15 @@ export async function approveUser(id, payload, actorId) {
return user;
}
// Rechaza y borra una cuenta que aun no esta activa: tanto la que ya paso la verificacion de
// correo y espera aprobacion, como la que nunca llego a confirmar su correo (quedo abandonada en
// 'pending_verification' — antes no habia forma de quitarla desde la UI).
export async function rejectUser(id, actorId) {
const existing = await repo.findById(id);
if (!existing) throw new HttpError(404, 'Usuario no encontrado');
if (existing.status !== 'pending_approval') throw new HttpError(400, 'El usuario no esta pendiente de aprobacion');
await logAudit({ userId: actorId, action: 'reject', entityType: 'user', entityId: id, detail: { email: existing.email } });
if (!['pending_approval', 'pending_verification'].includes(existing.status)) {
throw new HttpError(400, 'El usuario no esta pendiente de aprobacion ni de verificacion');
}
await logAudit({ userId: actorId, action: 'reject', entityType: 'user', entityId: id, detail: { email: existing.email, status: existing.status } });
await repo.remove(id);
}