Auditoría de Usuarios
Este componente permite a un administrador visualizar, filtrar, inactivar y reactivar usuarios dentro del sistema. Proporciona una tabla detallada con información clave, junto con modales de confirmación para acciones sensibles como la eliminación lógica o la reactivación de cuentas.
🔍 Ubicación
src/pages/equipo/UsuarioAuditoria.tsx
📦 Dependencias
-
Hooks:
useEffect
,useState
de ReactuseUser
– para obtener al usuario autenticadouseToast
– para mostrar notificaciones emergentes
-
Librerías:
axios
– para realizar peticiones HTTPlucide-react
– íconos (Trash
,Pencil
)
-
Constantes:
url
– base del endpoint de API
🧩 Props
Este componente no recibe props. Depende del contexto del usuario autenticado (useUser
) para determinar permisos.
🧱 Estructuras de datos
interface Usuario {
idUsuario: number;
username: string;
nombreCompleto: string;
correo: string;
rol: "USUARIO" | "EQUIPO" | "ADMIN" | "DESARROLLADOR";
tipoUsuario?: "INDIVIDUAL" | "EMPRESARIAL";
estado: "activo" | "inactivo";
createdAt: string;
updatedAt: string;
deletedAt?: string | null;
}
⚙️ Lógica interna
📌 Estado local:
usuarios
: lista de todos los usuarios cargados.confirmEliminarId
: ID del usuario seleccionado para inactivación.confirmReactivarId
: ID del usuario seleccionado para reactivación.filtroNombre
,filtroCorreo
,filtroTipo
,filtroRol
,filtroEstado
: inputs de filtrado.
🔁 Efectos:
useEffect
: al montar el componente, se carga la lista completa de usuarios desde el backend.
📤 Funciones principales:
filtrarUsuarios
: aplica filtros (nombre, correo, tipo, rol, estado) a la consulta de usuarios.cargarUsuarios
: obtiene la lista completa de usuarios sin filtros.eliminarUsuario
: inactiva un usuario, salvo que sea el mismo usuario autenticado.reactivarUsuario
: revierte la inactivación de un usuario dado.
🔐 Reglas de acceso
- Solo visible para usuarios con rol:
ADMIN
. - Si el usuario autenticado no cumple, se muestra:
Sin permisos para ver esta auditoría.
🖥️ Interfaz de usuario
🔎 Filtros
- Inputs para nombre, correo.
- Selects para tipo de usuario, rol, y estado.
- Botones para "Filtrar" y "Limpiar".
📋 Tabla
-
Muestra:
- ID, nombre de usuario, correo, rol, tipo, estado, fechas de creación/modificación/eliminación.
-
Columnas ordenadas horizontalmente con scroll si es necesario.
-
Íconos:
Trash
: InactivarPencil
: Reactivar
💬 Modales de confirmación
-
Inactivación (
confirmEliminarId
):- Previene auto-inactivación.
- Confirmación clara con opciones Cancelar/Inactivar.
-
Reactivación (
confirmReactivarId
):- Pregunta si se desea reactivar y ejecuta la acción al confirmar.
🧪 Ruta protegida
Este componente corresponde a la ruta:
/equipo/UsuarioAuditoria
Es utilizado por los administradores del sistema para auditar usuarios activos e inactivos, modificar su estado, y aplicar filtros de búsqueda avanzada.
💡 Consideraciones adicionales
- Los usuarios
ADMIN
yDESARROLLADOR
no pueden ser inactivados desde la interfaz. - Un usuario no puede eliminarse a sí mismo.
- El botón "Reactivar" está siempre visible como opción rápida para usuarios inactivos.