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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user