clean pages 3 rest 3

This commit is contained in:
alma 2025-04-17 17:16:41 +02:00
parent 0e238d8127
commit 4589aaab2f

View File

@ -49,26 +49,33 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
const pathname = usePathname();
// Function to check if user has a specific role
const hasRole = (requiredRole: string | string[]) => {
if (!session?.user?.role) return false;
const hasRole = (requiredRole: string | string[] | undefined) => {
if (!requiredRole || !session?.user?.role) {
console.log('No required role or user roles found');
return false;
}
const userRoles = Array.isArray(session.user.role) ? session.user.role : [session.user.role];
// Add console.log to debug roles
console.log('User roles:', userRoles);
console.log('Required role:', requiredRole);
// Clean up user roles by removing ROLE_ prefix and / prefix
// Clean up user roles by removing prefixes and converting to lowercase for comparison
const cleanUserRoles = userRoles.map(role =>
role.replace('ROLE_', '').replace('/', '')
role.replace(/^[\/]/, '').toLowerCase()
);
console.log('Clean user roles:', cleanUserRoles);
// If requiredRole is an array, check if user has any of the roles
if (Array.isArray(requiredRole)) {
return requiredRole.some(role =>
cleanUserRoles.includes(role) || cleanUserRoles.includes('Admin')
const cleanRequiredRoles = requiredRole.map(role => role.toLowerCase());
console.log('Required roles (array):', cleanRequiredRoles);
return cleanRequiredRoles.some(role =>
cleanUserRoles.includes(role.toLowerCase()) || cleanUserRoles.includes('admin')
);
}
return cleanUserRoles.includes(requiredRole) || cleanUserRoles.includes('Admin');
// For single role requirement
console.log('Required role (single):', requiredRole.toLowerCase());
return cleanUserRoles.includes(requiredRole.toLowerCase()) || cleanUserRoles.includes('admin');
};
// Base menu items (available for everyone)