Files
Infosec/middleware/auth.js
T
2026-09-13 20:10:17 +01:00

26 lines
675 B
JavaScript

'use strict';
function isApi(req) {
return (req.originalUrl || req.url).startsWith('/api/');
}
function requireAuth(req, res, next) {
if (req.session && req.session.user) return next();
if (isApi(req)) {
return res.status(401).json({ error: 'Not authenticated' });
}
return res.redirect('/login.html');
}
function requireAdmin(req, res, next) {
if (req.session && req.session.user && req.session.user.role === 'admin') {
return next();
}
if (isApi(req)) {
return res.status(403).json({ error: 'Admin access required' });
}
return res.status(403).send('Forbidden: admin access required.');
}
module.exports = { requireAuth, requireAdmin };