/** * Middleware zur Überprüfung der Benutzerrolle * @param {string[]} requiredRoles - Die erforderlichen Rollen * @returns {function} Express Middleware Funktion */ exports.requireRole = (requiredRoles) => { return (req, res, next) => { // Wenn kein Benutzer authentifiziert ist if (!req.user) { return res.status(401).json({ error: 'Authentication required' }); } // Überprüfe, ob der Benutzer eine der erforderlichen Rollen hat const hasRequiredRole = requiredRoles.some(role => req.user.role.includes(role)); if (!hasRequiredRole) { return res.status(403).json({ error: 'Insufficient permissions' }); } next(); }; }; /** * Middleware zur Überprüfung, ob der Benutzer Admin ist * @param {Object} req - Express Request Objekt * @param {Object} res - Express Response Objekt * @param {function} next - Nächste Middleware Funktion */ exports.requireAdmin = (req, res, next) => { exports.requireRole(['admin'])(req, res, next); }; /** * Middleware zur Überprüfung, ob der Benutzer Moderator ist * @param {Object} req - Express Request Objekt * @param {Object} res - Express Response Objekt * @param {function} next - Nächste Middleware Funktion */ exports.requireModerator = (req, res, next) => { exports.requireRole(['moderator', 'admin'])(req, res, next); };