clean sidebar role 2

This commit is contained in:
alma 2025-04-18 10:39:38 +02:00
parent 788e99e9d8
commit 978aae592a

View File

@ -105,18 +105,31 @@ export function MainNav() {
// Function to check if user has a specific role
const hasRole = (requiredRoles: string[]) => {
if (!session?.user?.role) return false;
if (!session?.user?.role) {
console.log('No user roles found');
return false;
}
const userRoles = Array.isArray(session.user.role) ? session.user.role : [session.user.role];
console.log('Raw user roles:', userRoles);
// Add console.log to debug roles
console.log('User roles:', userRoles);
console.log('Required roles:', requiredRoles);
// Clean up user roles by removing prefixes and converting to lowercase
const cleanUserRoles = userRoles.map(role =>
role.replace(/^[\/]/, '') // Remove leading slash
.replace(/^ROLE_/, '') // Remove ROLE_ prefix
.toLowerCase()
);
console.log('Clean user roles:', cleanUserRoles);
return userRoles.some(role => {
// Remove ROLE_ prefix if it exists
const cleanRole = role.replace('ROLE_', '');
return requiredRoles.includes(cleanRole) || cleanRole === 'Admin';
});
// Clean required roles
const cleanRequiredRoles = requiredRoles.map(role => role.toLowerCase());
console.log('Clean required roles:', cleanRequiredRoles);
// Check if user has any of the required roles
const hasAnyRole = cleanRequiredRoles.some(role => cleanUserRoles.includes(role));
console.log('Has any role:', hasAnyRole);
return hasAnyRole;
};
// Status configurations