// ============================================================ // Módulo de Gestión de Usuarios // ============================================================ const AREAS = ['Digitalización', 'Edición', 'Control de Calidad', 'Conversión', 'Supervisión', 'Administración']; const PUESTOS = ['Operador', 'Analista', 'Coordinador', 'Supervisor', 'Jefe de área', 'Director']; const GestionUsuariosLocal = ({ usuarios, onUpdate, onCreate, onDelete }) => { const [editando, setEditando] = useState(null); const [creando, setCreando] = useState(false); const [q, setQ] = useState(''); const filtrados = usuarios.filter(u => !q || u.nombre.toLowerCase().includes(q.toLowerCase()) || u.id.toLowerCase().includes(q.toLowerCase()) ); return (
| Usuario | Nombre completo | Área | Puesto | Correo | Roles asignados | Password | Acciones |
|---|---|---|---|---|---|---|---|
|
|
{u.nombre} | {u.area || '—'} | {u.puesto || '—'} | {u.email || '—'} |
{u.roles.map(r => (
{APP_DATA.ROLES[r]?.label}
))}
|
{u.password ? '••••••••' : 'Sin definir'} |
| Usuario | Nombre | Correo | Perfil principal | Perfiles asignados | Estado | Actualizado | Acción |
|---|---|---|---|---|---|---|---|
| @{user.username} | {user.name} | {user.email||'—'} | {user.role_name||'—'} | {(user.roles||[]).map(code=>{state.roles.find(role=>role.code===code)?.name||code})} | {user.status==='active'?'Activo':'Inactivo'} | {user.updated_at||'—'} | |