Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
This commit is contained in:
Omar Sánchez Pizarro
2026-01-20 03:21:50 +01:00
parent 19932854ca
commit 81bf0675ed
32 changed files with 3081 additions and 932 deletions

View File

@@ -0,0 +1,30 @@
import { getUser } from '../services/mongodb.js';
// Middleware para verificar que el usuario es administrador
export async function adminAuthMiddleware(req, res, next) {
// Debe estar autenticado primero (requiere basicAuthMiddleware antes)
if (!req.user || !req.user.username) {
return res.status(401).json({ error: 'Authentication required', message: 'Se requiere autenticación' });
}
try {
const user = await getUser(req.user.username);
if (!user) {
return res.status(401).json({ error: 'Invalid user', message: 'Usuario no encontrado' });
}
const userRole = user.role || 'user';
if (userRole !== 'admin') {
return res.status(403).json({ error: 'Forbidden', message: 'Se requieren permisos de administrador' });
}
// Usuario es admin, continuar
next();
} catch (error) {
console.error('Error verificando permisos de admin:', error);
res.status(500).json({ error: 'Internal server error', message: 'Error verificando permisos' });
}
}