Fix jwt-token

This commit is contained in:
2025-09-15 07:05:38 +02:00
parent 6eafcbab19
commit 8ada5d8b2a

View File

@@ -126,6 +126,11 @@ const hasPermission = (userRole, permission) => {
* @returns {boolean} - True if user has permission
*/
const checkPermission = (userRole, resource, action) => {
// Normalize inputs to lowercase for case-insensitive comparison
const normalizedRole = userRole ? userRole.toLowerCase() : '';
const normalizedResource = resource ? resource.toLowerCase() : '';
const normalizedAction = action ? action.toLowerCase() : '';
// Map common actions to our permission system
const actionMap = {
'read': 'view',
@@ -149,11 +154,11 @@ const checkPermission = (userRole, resource, action) => {
'ui_customization': 'branding'
};
const mappedResource = resourceMap[resource] || resource;
const mappedAction = actionMap[action] || action;
const mappedResource = resourceMap[normalizedResource] || normalizedResource;
const mappedAction = actionMap[normalizedAction] || normalizedAction;
const permission = `${mappedResource}.${mappedAction}`;
return hasPermission(userRole, permission);
return hasPermission(normalizedRole, permission);
};
/**
@@ -167,14 +172,14 @@ const requirePermission = (resource, action) => {
if (!req.user || !req.user.role) {
return res.status(403).json({
success: false,
message: 'Access denied - no user role'
message: 'Insufficient permissions'
});
}
if (!checkPermission(req.user.role, resource, action)) {
return res.status(403).json({
success: false,
message: 'Access denied - insufficient permissions'
message: 'Insufficient permissions'
});
}