Fix jwt-token

This commit is contained in:
2025-09-15 06:39:25 +02:00
parent 2851a2e9c8
commit 159affb113
3 changed files with 32 additions and 1 deletions

View File

@@ -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,