diff --git a/web/app/(commonLayout)/datasets/layout.tsx b/web/app/(commonLayout)/datasets/layout.tsx
index aecb537aa6..bb514fc348 100644
--- a/web/app/(commonLayout)/datasets/layout.tsx
+++ b/web/app/(commonLayout)/datasets/layout.tsx
@@ -1,9 +1,23 @@
'use client'
+import Loading from '@/app/components/base/loading'
+import { useAppContext } from '@/context/app-context'
import { ExternalApiPanelProvider } from '@/context/external-api-panel-context'
import { ExternalKnowledgeApiProvider } from '@/context/external-knowledge-api-context'
+import { useRouter } from 'next/navigation'
+import { useEffect } from 'react'
export default function DatasetsLayout({ children }: { children: React.ReactNode }) {
+ const { isCurrentWorkspaceEditor } = useAppContext()
+ const router = useRouter()
+
+ useEffect(() => {
+ if (!isCurrentWorkspaceEditor)
+ router.replace('/apps')
+ }, [isCurrentWorkspaceEditor, router])
+
+ if (!isCurrentWorkspaceEditor)
+ return
return (