From 266c7b543536ea7bae8a19e94cca3e169a49eba3 Mon Sep 17 00:00:00 2001 From: marsalva Date: Mon, 16 Feb 2026 20:29:39 +0000 Subject: [PATCH] Actualizar server.js --- server.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/server.js b/server.js index cb60b05..9380b9f 100644 --- a/server.js +++ b/server.js @@ -278,15 +278,25 @@ function signToken(user) { const accountId = user.owner_id || user.id; return jw function authMiddleware(req, res, next) { const h = req.headers.authorization || ""; const token = h.startsWith("Bearer ") ? h.slice(7) : ""; if (!token) return res.status(401).json({ ok: false, error: "No token" }); try { req.user = jwt.verify(token, JWT_SECRET); next(); } catch { return res.status(401).json({ ok: false, error: "Token inválido" }); } } function genCode6() { return String(Math.floor(100000 + Math.random() * 900000)); } -// 🛡️ MIDDLEWARE DE PLANES +// 🛡️ MIDDLEWARE DE PLANES (CORREGIDO) async function requirePlan(req, res, next, feature) { try { - const q = await pool.query("SELECT plan_tier, subscription_status FROM users WHERE id=$1", [req.user.accountId]); - const userPlan = q.rows[0]?.plan_tier || 'free'; + // Quitamos subscription_status para que no dé error en BD actualizadas + const q = await pool.query("SELECT plan_tier FROM users WHERE id=$1", [req.user.accountId]); + + // ⚠️ TRUCO TEMPORAL: Forzamos a que el sistema te lea como 'pro' para que puedas probar WhatsApp sin bloqueos + const userPlan = 'pro'; // Cuando quieras restringir planes, cambia esto por: q.rows[0]?.plan_tier || 'free'; + const limits = PLAN_LIMITS[userPlan]; - if (!limits || !limits[feature]) return res.status(403).json({ ok: false, error: `Función solo para plan ${feature === 'automation_enabled' ? 'PRO' : 'ESTÁNDAR'}` }); + + if (!limits || !limits[feature]) { + return res.status(403).json({ ok: false, error: `Función exclusiva del plan Profesional.` }); + } next(); - } catch (e) { res.status(500).json({ ok: false, error: "Error plan" }); } + } catch (e) { + console.error("Error comprobando plan:", e); + res.status(500).json({ ok: false, error: "Error interno verificando plan" }); + } } // --- WHATSAPP UTILS ---