From 41cb39eb5d4e74745f23c11d25fecad4dbb9700c Mon Sep 17 00:00:00 2001 From: NFish Date: Mon, 16 Jun 2025 16:39:05 +0800 Subject: [PATCH 1/2] fix: redirect to apps page if current user has no permission to visit dataset page (#21065) --- web/app/(commonLayout)/datasets/layout.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 ( From 2440ac43b191691548936587a58ae7b12ea1f866 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Mon, 16 Jun 2025 17:35:46 +0800 Subject: [PATCH 2/2] fix: Replace GenericProviderID with ToolProviderID (#21064) Signed-off-by: -LAN- --- api/services/tools/builtin_tools_manage_service.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/services/tools/builtin_tools_manage_service.py b/api/services/tools/builtin_tools_manage_service.py index 3ccd14415d..58a4b2f179 100644 --- a/api/services/tools/builtin_tools_manage_service.py +++ b/api/services/tools/builtin_tools_manage_service.py @@ -7,7 +7,7 @@ from sqlalchemy.orm import Session from configs import dify_config from core.helper.position_helper import is_filtered from core.model_runtime.utils.encoders import jsonable_encoder -from core.plugin.entities.plugin import GenericProviderID, ToolProviderID +from core.plugin.entities.plugin import ToolProviderID from core.plugin.impl.exc import PluginDaemonClientSideError from core.tools.builtin_tool.providers._positions import BuiltinToolProviderSort from core.tools.entities.api_entities import ToolApiEntity, ToolProviderApiEntity @@ -290,7 +290,7 @@ class BuiltinToolManageService: def _fetch_builtin_provider(provider_name: str, tenant_id: str) -> BuiltinToolProvider | None: try: full_provider_name = provider_name - provider_id_entity = GenericProviderID(provider_name) + provider_id_entity = ToolProviderID(provider_name) provider_name = provider_id_entity.provider_name if provider_id_entity.organization != "langgenius": provider_obj = ( @@ -315,7 +315,7 @@ class BuiltinToolManageService: if provider_obj is None: return None - provider_obj.provider = GenericProviderID(provider_obj.provider).to_string() + provider_obj.provider = ToolProviderID(provider_obj.provider).to_string() return provider_obj except Exception: # it's an old provider without organization