diff --git a/web/app/components/plugins/install-plugin/install-bundle/steps/install.tsx b/web/app/components/plugins/install-plugin/install-bundle/steps/install.tsx
index 2d8bdcd3d9..fabad62397 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/steps/install.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/steps/install.tsx
@@ -10,7 +10,7 @@ import type { ExposeRefs } from './install-multi'
import InstallMulti from './install-multi'
import { useInstallOrUpdate } from '@/service/use-plugins'
import useRefreshPluginList from '../../hooks/use-refresh-plugin-list'
-import { useCanInstallPluginFromMarketplace } from '@/app/components/plugins/plugin-page/use-permission'
+import { useCanInstallPluginFromMarketplace } from '@/app/components/plugins/plugin-page/use-reference-setting'
import { useMittContextSelector } from '@/context/mitt-context'
import Checkbox from '@/app/components/base/checkbox'
const i18nPrefix = 'plugin.installModal'
diff --git a/web/app/components/plugins/plugin-page/index.tsx b/web/app/components/plugins/plugin-page/index.tsx
index b495453b82..894a8b7f45 100644
--- a/web/app/components/plugins/plugin-page/index.tsx
+++ b/web/app/components/plugins/plugin-page/index.tsx
@@ -17,7 +17,7 @@ import {
} from './context'
import InstallPluginDropdown from './install-plugin-dropdown'
import { useUploader } from './use-uploader'
-import usePermission from './use-permission'
+import useReferenceSetting from './use-reference-setting'
import DebugInfo from './debug-info'
import PluginTasks from './plugin-tasks'
import Button from '@/app/components/base/button'
@@ -121,12 +121,12 @@ const PluginPage = ({
}, [packageId, bundleInfo])
const {
+ referenceSetting,
canManagement,
canDebugger,
canSetPermissions,
- permissions,
- setPermissions,
- } = usePermission()
+ setReferenceSettings,
+ } = useReferenceSetting()
const [showPluginSettingModal, {
setTrue: setShowPluginSettingModal,
setFalse: setHidePluginSettingModal,
@@ -277,9 +277,9 @@ const PluginPage = ({
{showPluginSettingModal && (
)}
diff --git a/web/app/components/plugins/plugin-page/use-permission.ts b/web/app/components/plugins/plugin-page/use-reference-setting.ts
similarity index 68%
rename from web/app/components/plugins/plugin-page/use-permission.ts
rename to web/app/components/plugins/plugin-page/use-reference-setting.ts
index 918813fb44..dbf5097c07 100644
--- a/web/app/components/plugins/plugin-page/use-permission.ts
+++ b/web/app/components/plugins/plugin-page/use-reference-setting.ts
@@ -2,7 +2,7 @@ import { PermissionType } from '../types'
import { useAppContext } from '@/context/app-context'
import Toast from '../../base/toast'
import { useTranslation } from 'react-i18next'
-import { useInvalidatePermissions, useMutationPermissions, usePermissions } from '@/service/use-plugins'
+import { useInvalidateReferenceSettings, useMutationReferenceSettings, useReferenceSettings } from '@/service/use-plugins'
import { useMemo } from 'react'
import { useGlobalPublicStore } from '@/context/global-public-context'
@@ -19,14 +19,16 @@ const hasPermission = (permission: PermissionType | undefined, isAdmin: boolean)
return isAdmin
}
-const usePermission = () => {
+const useReferenceSetting = () => {
const { t } = useTranslation()
const { isCurrentWorkspaceManager, isCurrentWorkspaceOwner } = useAppContext()
- const { data: permissions } = usePermissions()
- const invalidatePermissions = useInvalidatePermissions()
- const { mutate: updatePermission, isPending: isUpdatePending } = useMutationPermissions({
+ const { data } = useReferenceSettings()
+ // console.log(data)
+ const { permission: permissions } = data || {}
+ const invalidateReferenceSettings = useInvalidateReferenceSettings()
+ const { mutate: updateReferenceSetting, isPending: isUpdatePending } = useMutationReferenceSettings({
onSuccess: () => {
- invalidatePermissions()
+ invalidateReferenceSettings()
Toast.notify({
type: 'success',
message: t('common.api.actionSuccess'),
@@ -36,18 +38,18 @@ const usePermission = () => {
const isAdmin = isCurrentWorkspaceManager || isCurrentWorkspaceOwner
return {
+ referenceSetting: data,
+ setReferenceSettings: updateReferenceSetting,
canManagement: hasPermission(permissions?.install_permission, isAdmin),
canDebugger: hasPermission(permissions?.debug_permission, isAdmin),
canSetPermissions: isAdmin,
- permissions,
- setPermissions: updatePermission,
isUpdatePending,
}
}
export const useCanInstallPluginFromMarketplace = () => {
const { enable_marketplace } = useGlobalPublicStore(s => s.systemFeatures)
- const { canManagement } = usePermission()
+ const { canManagement } = useReferenceSetting()
const canInstallPluginFromMarketplace = useMemo(() => {
return enable_marketplace && canManagement
@@ -58,4 +60,4 @@ export const useCanInstallPluginFromMarketplace = () => {
}
}
-export default usePermission
+export default useReferenceSetting
diff --git a/web/app/components/plugins/reference-setting-modal/modal.tsx b/web/app/components/plugins/reference-setting-modal/modal.tsx
index 0bf12cb2b5..9fefbdbb55 100644
--- a/web/app/components/plugins/reference-setting-modal/modal.tsx
+++ b/web/app/components/plugins/reference-setting-modal/modal.tsx
@@ -5,19 +5,18 @@ import { useTranslation } from 'react-i18next'
import Modal from '@/app/components/base/modal'
import OptionCard from '@/app/components/workflow/nodes/_base/components/option-card'
import Button from '@/app/components/base/button'
-import type { Permissions } from '@/app/components/plugins/types'
+import type { Permissions, ReferenceSetting } from '@/app/components/plugins/types'
import { PermissionType } from '@/app/components/plugins/types'
import type { AutoUpdateConfig } from './auto-update-setting/types'
import AutoUpdateSetting from './auto-update-setting'
import { defaultValue as autoUpdateDefaultValue } from './auto-update-setting/config'
import Label from './label'
-type Payload = Permissions & { autoUpdate: AutoUpdateConfig }
const i18nPrefix = 'plugin.privilege'
type Props = {
- payload: Payload
+ payload: ReferenceSetting
onHide: () => void
- onSave: (payload: Payload) => void
+ onSave: (payload: ReferenceSetting) => void
}
const PluginSettingModal: FC = ({
@@ -26,7 +25,7 @@ const PluginSettingModal: FC = ({
onSave,
}) => {
const { t } = useTranslation()
- const { autoUpdate: autoUpdateConfig, ...privilege } = payload || {}
+ const { auto_upgrade: autoUpdateConfig, permission: privilege } = payload || {}
const [tempPrivilege, setTempPrivilege] = useState(privilege)
const [tempAutoUpdateConfig, setTempAutoUpdateConfig] = useState(autoUpdateConfig || autoUpdateDefaultValue)
const handlePrivilegeChange = useCallback((key: string) => {
@@ -40,8 +39,8 @@ const PluginSettingModal: FC = ({
const handleSave = useCallback(async () => {
await onSave({
- ...tempPrivilege,
- autoUpdate: tempAutoUpdateConfig,
+ permission: tempPrivilege,
+ auto_upgrade: tempAutoUpdateConfig,
})
onHide()
}, [onHide, onSave, tempAutoUpdateConfig, tempPrivilege])
diff --git a/web/app/components/plugins/types.ts b/web/app/components/plugins/types.ts
index 1cd0409b1e..162bf236d8 100644
--- a/web/app/components/plugins/types.ts
+++ b/web/app/components/plugins/types.ts
@@ -2,6 +2,7 @@ import type { CredentialFormSchemaBase } from '../header/account-setting/model-p
import type { ToolCredential } from '@/app/components/tools/types'
import type { Locale } from '@/i18n'
import type { AgentFeature } from '@/app/components/workflow/nodes/agent/types'
+import type { AutoUpdateConfig } from './reference-setting-modal/auto-update-setting/types'
export enum PluginType {
tool = 'tool',
model = 'model',
@@ -170,6 +171,11 @@ export type Permissions = {
debug_permission: PermissionType
}
+export type ReferenceSetting = {
+ permission: Permissions
+ auto_upgrade: AutoUpdateConfig
+}
+
export type UpdateFromMarketPlacePayload = {
category: PluginType
originalPackageInfo: {
diff --git a/web/service/use-plugins.ts b/web/service/use-plugins.ts
index 474f1bf4ae..54d1c72603 100644
--- a/web/service/use-plugins.ts
+++ b/web/service/use-plugins.ts
@@ -13,7 +13,6 @@ import type {
InstalledLatestVersionResponse,
InstalledPluginListWithTotalResponse,
PackageDependency,
- Permissions,
Plugin,
PluginDeclaration,
PluginDetail,
@@ -22,6 +21,7 @@ import type {
PluginType,
PluginsFromMarketplaceByInfoResponse,
PluginsFromMarketplaceResponse,
+ ReferenceSetting,
VersionInfo,
VersionListResponse,
uploadGitHubResponse,
@@ -40,7 +40,7 @@ import {
useQueryClient,
} from '@tanstack/react-query'
import { useInvalidateAllBuiltInTools } from './use-tools'
-import usePermission from '@/app/components/plugins/plugin-page/use-permission'
+import useReferenceSetting from '@/app/components/plugins/plugin-page/use-reference-setting'
import { uninstallPlugin } from '@/service/plugins'
import useRefreshPluginList from '@/app/components/plugins/install-plugin/hooks/use-refresh-plugin-list'
import { cloneDeep } from 'lodash-es'
@@ -350,32 +350,32 @@ export const useDebugKey = () => {
})
}
-const usePermissionsKey = [NAME_SPACE, 'permissions']
-export const usePermissions = () => {
+const useReferenceSettingKey = [NAME_SPACE, 'referenceSettings']
+export const useReferenceSettings = () => {
return useQuery({
- queryKey: usePermissionsKey,
- queryFn: () => get('/workspaces/current/plugin/permission/fetch'),
+ queryKey: useReferenceSettingKey,
+ queryFn: () => get('/workspaces/current/plugin/preferences/fetch'),
})
}
-export const useInvalidatePermissions = () => {
+export const useInvalidateReferenceSettings = () => {
const queryClient = useQueryClient()
return () => {
queryClient.invalidateQueries(
{
- queryKey: usePermissionsKey,
+ queryKey: useReferenceSettingKey,
})
}
}
-export const useMutationPermissions = ({
+export const useMutationReferenceSettings = ({
onSuccess,
}: {
onSuccess?: () => void
}) => {
return useMutation({
- mutationFn: (payload: Permissions) => {
- return post('/workspaces/current/plugin/permission/change', { body: payload })
+ mutationFn: (payload: ReferenceSetting) => {
+ return post('/workspaces/current/plugin/preferences/change', { body: payload })
},
onSuccess,
})
@@ -481,7 +481,7 @@ const usePluginTaskListKey = [NAME_SPACE, 'pluginTaskList']
export const usePluginTaskList = (category?: PluginType) => {
const {
canManagement,
- } = usePermission()
+ } = useReferenceSetting()
const { refreshPluginList } = useRefreshPluginList()
const {
data,