clean pages 3 rest 3
This commit is contained in:
parent
0e238d8127
commit
4589aaab2f
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user