fix: use valid RPC method for session validation

This commit is contained in:
2025-10-15 15:46:42 -05:00
parent da83e18aa2
commit 470f510701
2 changed files with 22 additions and 6 deletions

View File

@@ -544,7 +544,10 @@ export class TrytonClient {
// Establecer la sesión sin hacer login // Establecer la sesión sin hacer login
this.session = sessionToken; this.session = sessionToken;
console.log("🔐 Session establecida en client:", this.session?.substring(0, 30) + "..."); console.log(
"🔐 Session establecida en client:",
this.session?.substring(0, 30) + "..."
);
// Actualizar la sesión en el connection pool ANTES de obtener proxy // Actualizar la sesión en el connection pool ANTES de obtener proxy
if (this.connection) { if (this.connection) {
@@ -562,7 +565,10 @@ export class TrytonClient {
try { try {
console.log("🔐 Validando sesión con Tryton server..."); console.log("🔐 Validando sesión con Tryton server...");
// Usar un método que requiere autenticación para validar la sesión // Usar un método que requiere autenticación para validar la sesión
await proxy.request("model.res.user.get_preferences", [true, {}]); await proxy.request("model.res.user.get_preferences", [
true,
{},
]);
console.log("✅ Sesión restaurada exitosamente"); console.log("✅ Sesión restaurada exitosamente");
this.connection.putConnection(proxy); // Devolver conexión al pool this.connection.putConnection(proxy); // Devolver conexión al pool
return true; return true;

View File

@@ -480,7 +480,11 @@ export class ServerProxy {
: null; : null;
this.useHttps = options.useHttps || false; this.useHttps = options.useHttps || false;
console.log(`🔨 ServerProxy constructor: session=${options.session?.substring(0, 30) || 'undefined'}...`); console.log(
`🔨 ServerProxy constructor: session=${
options.session?.substring(0, 30) || "undefined"
}...`
);
this.transport = new Transport({ this.transport = new Transport({
fingerprints: options.fingerprints, fingerprints: options.fingerprints,
caCerts: options.caCerts, caCerts: options.caCerts,
@@ -656,19 +660,25 @@ export class ServerPool {
console.log(`🔧 Sesión nueva: ${session.substring(0, 30)}...`); console.log(`🔧 Sesión nueva: ${session.substring(0, 30)}...`);
this.session = session; this.session = session;
this.options.session = session; this.options.session = session;
console.log(`🔧 Pool connections: ${this.pool.length}, Used connections: ${this.used.size}`); console.log(
`🔧 Pool connections: ${this.pool.length}, Used connections: ${this.used.size}`
);
// Update session for all existing connections and their transports // Update session for all existing connections and their transports
for (const conn of this.pool) { for (const conn of this.pool) {
if ((conn as any).transport) { if ((conn as any).transport) {
(conn as any).transport.session = session; (conn as any).transport.session = session;
console.log("🔧 Sesión actualizada en pool connection transport"); console.log(
"🔧 Sesión actualizada en pool connection transport"
);
} }
} }
for (const conn of this.used) { for (const conn of this.used) {
if ((conn as any).transport) { if ((conn as any).transport) {
(conn as any).transport.session = session; (conn as any).transport.session = session;
console.log("🔧 Sesión actualizada en used connection transport"); console.log(
"🔧 Sesión actualizada en used connection transport"
);
} }
} }
} }