feat: Docker部署与CI/CD集成, 搜索栏修复, 上传目录改为data
This commit is contained in:
26
lib/middleware/adminMiddleware.ts
Normal file
26
lib/middleware/adminMiddleware.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
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<boolean> {
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user