Files
SDSStundenerfassung/middleware/auth.js
Carsten Graf a0acd188a8 Refactoring
2026-01-23 14:13:18 +01:00

49 lines
1.0 KiB
JavaScript

// Authentifizierungs-Middleware
const { hasRole } = require('../helpers/utils');
// Middleware: Authentifizierung prüfen
function requireAuth(req, res, next) {
if (req.session.userId) {
next();
} else {
res.redirect('/login');
}
}
// Middleware: Prüft ob User eine bestimmte Rolle hat
function requireRole(role) {
return (req, res, next) => {
if (req.session.userId && hasRole(req, role)) {
next();
} else {
res.status(403).send('Zugriff verweigert');
}
};
}
// Middleware: Admin-Rolle prüfen
function requireAdmin(req, res, next) {
if (req.session.userId && hasRole(req, 'admin')) {
next();
} else {
res.status(403).send('Zugriff verweigert');
}
}
// Middleware: Verwaltung-Rolle prüfen (Verwaltung oder Admin)
function requireVerwaltung(req, res, next) {
if (req.session.userId && (hasRole(req, 'verwaltung') || hasRole(req, 'admin'))) {
next();
} else {
res.status(403).send('Zugriff verweigert');
}
}
module.exports = {
requireAuth,
requireRole,
requireAdmin,
requireVerwaltung
};