Files
wallabicher/web/backend/middlewares/adminAuth.js
Omar Sánchez Pizarro 81bf0675ed mongodb
Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
2026-01-20 03:21:50 +01:00

31 lines
1.0 KiB
JavaScript

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' });
}
}