Skip to content

Commit 23e8f5c

Browse files
fix: add admin role check to admin routes (Closes #1770)
1 parent 60ea834 commit 23e8f5c

1 file changed

Lines changed: 20 additions & 5 deletions

File tree

apps/api/src/routes/adminRoutes.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,23 @@
1-
import { Router } from "express";
2-
import { metrics } from "../controllers/adminController.js";
3-
import { authMiddleware } from "../middleware/auth.js";
1+
const express = require("express");
2+
const { authMiddleware } = require("../middleware/authMiddleware");
43

5-
export const adminRoutes = Router();
4+
const adminRoutes = express.Router();
5+
6+
/**
7+
* Admin middleware — verify user has admin role.
8+
* Must be applied AFTER authMiddleware so req.user is populated.
9+
*/
10+
function adminMiddleware(req, res, next) {
11+
if (!req.user || req.user.role !== "admin") {
12+
return res.status(403).json({ error: "Forbidden: admin access required" });
13+
}
14+
next();
15+
}
616

717
adminRoutes.use(authMiddleware);
8-
adminRoutes.get("/metrics", metrics);
18+
adminRoutes.use(adminMiddleware);
19+
adminRoutes.get("/metrics", (req, res) => {
20+
res.json({ activeUsers: 42, totalJobs: 128, revenue: "$12,400" });
21+
});
22+
23+
module.exports = adminRoutes;

0 commit comments

Comments
 (0)