import { NextApiResponse } from 'next'; import { AuthenticatedRequest, requireAuth } from './authMiddleware'; import { UserRole } from '../../types'; /** * Middleware to require admin authentication * Returns 403 if user is not an admin */ export async function requireAdmin( req: AuthenticatedRequest, res: NextApiResponse ): Promise { // First check if user is authenticated const isAuthenticated = await requireAuth(req, res); if (!isAuthenticated) { return false; } // Check if user has admin role if (req.user?.role !== UserRole.ADMIN) { res.status(403).json({ success: false, error: 'Admin access required' }); return false; } return true; }