/* global React */ // Usuarios (HU.4.1) — Gestión de cuentas y roles // Vista de gestión de usuarios únicamente (Instituciones tiene su propio módulo). const { useState: useStateUs, useMemo: useMemoUs } = React; function UsuariosScreen({ roleId, user, onOpenNuevo }) { const I = window.Icons; const usuarios = window.USUARIOS; const [filterRol, setFilterRol] = useStateUs('todos'); const [q, setQ] = useStateUs(''); const counts = useMemoUs(() => { const c = { todos: usuarios.length, superadmin: 0, admin: 0, institucion: 0, cancilleria: 0, lector: 0, pendientes: 0, desactivados: 0 }; usuarios.forEach(u => { c[u.rol] = (c[u.rol] || 0) + 1; if (u.estado === 'pendiente') c.pendientes++; if (u.estado === 'desactivado') c.desactivados++; }); return c; }, [usuarios]); const filtered = usuarios.filter(u => { if (filterRol !== 'todos' && u.rol !== filterRol) return false; if (q && !`${u.nombre} ${u.email} ${u.institucion}`.toLowerCase().includes(q.toLowerCase())) return false; return true; }); return (
Administra cuentas de acceso y asignación de roles. Cada acción queda registrada en el log de auditoría y los usuarios desactivados conservan su historial.
| Usuario | Correo | Rol | Institución | Último acceso | Estado | |
|---|---|---|---|---|---|---|
|
{u.initials}
{u.nombre}
|
{u.email} | {u.institucion} | {u.ultimo} | {u.estado === 'activo' ? 'Activo' : u.estado === 'pendiente' ? 'Pendiente' : 'Desactivado'} |