Fix jwt-token
This commit is contained in:
@@ -155,6 +155,32 @@ const checkPermission = (userRole, resource, action) => {
|
||||
return hasPermission(userRole, permission);
|
||||
};
|
||||
|
||||
/**
|
||||
* Compatibility function for tests - creates middleware for specific resource.action
|
||||
* @param {string} resource - The resource (e.g., 'devices', 'users')
|
||||
* @param {string} action - The action (e.g., 'read', 'create', 'update', 'delete')
|
||||
* @returns {Function} - Express middleware function
|
||||
*/
|
||||
const requirePermission = (resource, action) => {
|
||||
return (req, res, next) => {
|
||||
if (!req.user || !req.user.role) {
|
||||
return res.status(403).json({
|
||||
success: false,
|
||||
message: 'Access denied - no user role'
|
||||
});
|
||||
}
|
||||
|
||||
if (!checkPermission(req.user.role, resource, action)) {
|
||||
return res.status(403).json({
|
||||
success: false,
|
||||
message: 'Access denied - insufficient permissions'
|
||||
});
|
||||
}
|
||||
|
||||
next();
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if a user has any of the specified permissions
|
||||
* @param {string} userRole - The user's role
|
||||
@@ -261,6 +287,7 @@ module.exports = {
|
||||
ROLES,
|
||||
hasPermission,
|
||||
checkPermission,
|
||||
requirePermission,
|
||||
hasAnyPermission,
|
||||
hasAllPermissions,
|
||||
getPermissions,
|
||||
|
||||
Reference in New Issue
Block a user