Files
Schema-Studio/src/shared/middleware/rbacMiddleware.ts
2025-09-01 16:53:04 +05:30

14 lines
503 B
TypeScript

import { Response, NextFunction } from "express";
import { AuthenticatedRequest } from "../../shared/utils/token";
type Role = "Admin" | "Viewer" | "Editor";
const authorizedRoles = (...allowedRoles: Role[]) => {
return (req: AuthenticatedRequest, res: Response, next: NextFunction) => {
if (!req.user || !allowedRoles.includes(req.user.role as Role)) {
res.status(403).json({ message: "Access Denied" });
return;
}
next();
};
};
export default authorizedRoles;