diff --git a/components/sidebar.tsx b/components/sidebar.tsx index 9a909500..7a63cff1 100644 --- a/components/sidebar.tsx +++ b/components/sidebar.tsx @@ -50,24 +50,38 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) { // Function to check if user has a specific role const hasRole = (requiredRole: string | string[]) => { - if (!session?.user?.role) 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('=== Role Check Debug ==='); + console.log('Session:', session); + console.log('User:', session?.user); + console.log('User roles:', session?.user?.role); + const userRoles = Array.isArray(session?.user?.role) ? session.user.role : [session?.user?.role]; + console.log('Processed user roles:', userRoles); console.log('Required role:', requiredRole); + if (!session?.user?.role) { + console.log('No user roles found'); + return false; + } + if (Array.isArray(requiredRole)) { - return userRoles.some(role => { + const hasRequiredRole = userRoles.some(role => { const cleanRole = role.replace('ROLE_', ''); - return requiredRole.includes(cleanRole) || cleanRole === 'Admin'; + const hasRole = requiredRole.includes(cleanRole) || cleanRole === 'Admin'; + console.log(`Checking role ${cleanRole} against required roles:`, hasRole); + return hasRole; }); + console.log('Has any required role:', hasRequiredRole); + return hasRequiredRole; } - return userRoles.some(role => { + const hasRequiredRole = userRoles.some(role => { const cleanRole = role.replace('ROLE_', ''); - return cleanRole === requiredRole || cleanRole === 'Admin'; + const hasRole = cleanRole === requiredRole || cleanRole === 'Admin'; + console.log(`Checking role ${cleanRole} against required role ${requiredRole}:`, hasRole); + return hasRole; }); + console.log('Has required role:', hasRequiredRole); + return hasRequiredRole; }; // Base menu items (available for everyone)