rol !== 'Admin') { http_response_code(403); echo json_encode(['success' => false, 'error' => 'Acceso denegado. Se requieren permisos de Administrador.']); exit; } if (!isset($_GET['id'])) { http_response_code(400); echo json_encode(['success' => false, 'error' => 'ID de usuario requerido']); exit; } $userId = (int)$_GET['id']; try { $db = getDB(); // Obtener datos del usuario $stmt = $db->prepare(" SELECT id, username, email, rol_id, fecha_creacion, ultimo_acceso FROM usuarios WHERE id = ? "); $stmt->execute([$userId]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if (!$user) { http_response_code(404); echo json_encode(['success' => false, 'error' => 'Usuario no encontrado']); exit; } // Obtener permisos asignados al usuario $stmtPerm = $db->prepare("SELECT permiso_id FROM usuarios_permisos WHERE usuario_id = ?"); $stmtPerm->execute([$userId]); $userPermisos = $stmtPerm->fetchAll(PDO::FETCH_COLUMN); // Obtener todos los permisos disponibles $stmtAllPerms = $db->query("SELECT * FROM permisos ORDER BY modulo, nombre"); $allPermisos = $stmtAllPerms->fetchAll(PDO::FETCH_ASSOC); // Obtener roles $stmtRoles = $db->query("SELECT * FROM roles ORDER BY nombre ASC"); $roles = $stmtRoles->fetchAll(PDO::FETCH_ASSOC); echo json_encode([ 'success' => true, 'user' => $user, 'user_permisos' => $userPermisos, 'all_permisos' => $allPermisos, 'roles' => $roles ]); } catch (Exception $e) { http_response_code(500); echo json_encode(['success' => false, 'error' => 'Error al obtener usuario: ' . $e->getMessage()]); }