We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 4173866 + 07ff86e commit d523ecaCopy full SHA for d523eca
land-registry-backend/src/middleware/roleGuard.ts
@@ -0,0 +1,16 @@
1
+import { Request, Response, NextFunction } from "express";
2
+
3
+/**
4
+ * Middleware to restrict access to routes based on user role.
5
+ * Usage: app.use('/dashboard/owner', roleGuard(['owner']), ...)
6
+ */
7
+export function roleGuard(allowedRoles: string[]) {
8
+ return (req: Request, res: Response, next: NextFunction) => {
9
+ // Assumes req.user is set by authentication middleware (e.g., JWT)
10
+ const userRole = req.user?.role;
11
+ if (!userRole || !allowedRoles.includes(userRole)) {
12
+ return res.status(403).json({ message: "Forbidden: Insufficient role" });
13
+ }
14
+ next();
15
+ };
16
+}
0 commit comments