Actualizar server.js

This commit is contained in:
2026-02-16 20:29:39 +00:00
parent 77f8172ccf
commit 266c7b5435

View File

@@ -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 ---