Skip to content

Commit d523eca

Browse files
Merge pull request #373 from manoahLinks/role
Restrict dashboard access based on user role
2 parents 4173866 + 07ff86e commit d523eca

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)