diff --git a/src/router.tsx b/src/router.tsx index fe34923..1b821f1 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,5 +1,5 @@ import { lazy, Suspense, useEffect } from 'react' -import { createRouter, createRootRoute, createRoute, Outlet, useNavigate, useRouterState } from '@tanstack/react-router' +import { createRouter, createRootRoute, createRoute, redirect, Outlet, useNavigate, useRouterState } from '@tanstack/react-router' import { WorkspacePageWithBoundary } from '@/features/workspace/WorkspacePage' import { ImportPage } from '@/features/import/ImportPage' import { LibraryPage } from '@/features/library/LibraryPage' @@ -131,6 +131,12 @@ const settingsRoute = createRoute({ getParentRoute: () => rootRoute, path: '/settings', component: SettingsPage, + beforeLoad: ({ context }) => { + const role = (context as { auth?: { user?: { platformRole?: string } } }).auth?.user?.platformRole + if (role === 'client_editor' || role === 'client_viewer') { + throw redirect({ to: '/library' }) + } + }, }) const resourcesRoute = createRoute({