const jwt = require("jsonwebtoken"); const bcrypt = require("bcryptjs"); const pool = require("../db"); // Stelle sicher, dass der DB-Pool importiert wird // Authentifizierungs-Middleware const requireAuth = (req, res, next) => { const token = req.headers.authorization?.split(" ")[1]; if (!token) { return res.status(401).json({ error: "Kein Token vorhanden" }); } try { // JWT entschlüsseln const decoded = jwt.verify(token, process.env.JWT_SECRET); req.user = decoded; // Benutzerinformationen im Request speichern next(); } catch (err) { return res.status(401).json({ error: "Ungültiges Token" }); } }; const requireAdmin = async (req, res, next) => { try { const result = await pool.query("SELECT role FROM users WHERE id = $1", [ req.user.id, ]); if (result.rows.length === 0 || result.rows[0].role !== "admin") { return res.status(403).json({ error: "Nicht autorisiert" }); } next(); } catch (err) { console.error(err); return res.status(500).json({ error: "Interner Serverfehler" }); } }; module.exports = { requireAuth, requireAdmin };