update: verifyRole
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
const { ErrorHandler } = require("../helpers/error");
|
||||
|
||||
module.exports = (req, res, next) => {
|
||||
const { roles } = req.user;
|
||||
if (roles && roles.includes("admin")) {
|
||||
req.user = {
|
||||
...req.user,
|
||||
roles,
|
||||
};
|
||||
return next();
|
||||
} else {
|
||||
throw new ErrorHandler(401, "require admin role");
|
||||
}
|
||||
};
|
||||
28
middleware/verifyRole.js
Normal file
28
middleware/verifyRole.js
Normal file
@@ -0,0 +1,28 @@
|
||||
const { ErrorHandler } = require("../helpers/error");
|
||||
|
||||
const verifyRole = (allowedRoles) => {
|
||||
return (req, res, next) => {
|
||||
try {
|
||||
const user = req.user;
|
||||
|
||||
if (!user) {
|
||||
throw new ErrorHandler(401, "Unauthorized: User not found");
|
||||
}
|
||||
|
||||
// Super Admin bypass semua role
|
||||
if (user.is_sa) {
|
||||
return next();
|
||||
}
|
||||
|
||||
if (!allowedRoles.includes(user.role_id)) {
|
||||
throw new ErrorHandler(403, "Forbidden: Access denied");
|
||||
}
|
||||
|
||||
next();
|
||||
} catch (err) {
|
||||
next(err);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = verifyRole;
|
||||
Reference in New Issue
Block a user