fix(admin): resolver pantalla en blanco al editar ficha de usuario (GET /admin/users/edit/:id)

This commit is contained in:
2026-09-23 15:58:03 -03:00
parent 9ebfedd17f
commit 7b6baca2b5
3 changed files with 65 additions and 15 deletions
+42 -7
View File
@@ -382,28 +382,63 @@ const handleUserAdd = async (req, res) => {
title: 'Nuevo Usuario — Edu-Space Admin',
user: null,
roles,
document_types
document_types,
error: req.query.error || null,
msg: req.query.msg || null
});
} catch (err) {
console.error('Error in user add:', err.message);
res.render('admin/users/form', { title: 'Nuevo Usuario', user: null, roles: MOCK_ROLES, document_types: [] });
res.render('admin/users/form', {
title: 'Nuevo Usuario — Edu-Space Admin',
user: null,
roles: MOCK_ROLES,
document_types: [],
error: req.query.error || null,
msg: null
});
}
};
const handleUserEdit = async (req, res) => {
try {
const { users, roles, document_types } = await fetchUsersAndRoles(req.apiClient);
const userId = req.params.id || req.query.id;
const targetUser = (userId ? users.find(u => String(u.id) === String(userId)) : null) || users[0] || MOCK_USERS[0];
const { users, roles, document_types } = await fetchUsersAndRoles(req.apiClient);
let targetUser = userId ? users.find(u => String(u.id) === String(userId)) : null;
// Si no se encontró en la lista general y hay userId, intentar fetch individual
if (!targetUser && userId && req.apiClient) {
try {
const singleRes = await req.apiClient.get(`/users/${userId}`);
if (singleRes.data && (singleRes.data.user || singleRes.data.data)) {
targetUser = singleRes.data.user || singleRes.data.data;
}
} catch (e) {
console.warn(`User ${userId} not found via single endpoint:`, e.message);
}
}
targetUser = targetUser || (userId ? null : users[0]) || MOCK_USERS[0];
const userName = targetUser ? (targetUser.name || `${targetUser.first_name || ''} ${targetUser.last_name || ''}`.trim() || targetUser.email || `Usuario #${targetUser.id}`) : 'Usuario';
res.render('admin/users/form', {
title: `Editar Usuario: ${targetUser.name} — Edu-Space Admin`,
title: `Editar Usuario: ${userName} — Edu-Space Admin`,
user: targetUser,
roles,
document_types
document_types,
error: req.query.error || null,
msg: req.query.msg || null
});
} catch (err) {
console.error('Error in user edit:', err.message);
res.render('admin/users/form', { title: 'Editar Usuario', user: MOCK_USERS[0], roles: MOCK_ROLES, document_types: [] });
res.render('admin/users/form', {
title: 'Editar Usuario — Edu-Space Admin',
user: MOCK_USERS[0],
roles: MOCK_ROLES,
document_types: [],
error: 'No se pudo cargar la información del usuario.',
msg: null
});
}
};