dify/web/service/access-control/index.ts
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

66 lines
1.9 KiB
TypeScript

import type { AccessControlGroup, AccessMode, Subject } from '@/models/access-control'
import type { App } from '@/types/app'
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { consoleClient, consoleQuery } from '../client'
import {
useAppWhiteListSubjects as useAppWhiteListSubjectsBase,
useGetUserCanAccessApp as useGetUserCanAccessAppBase,
useSearchForWhiteListCandidates as useSearchForWhiteListCandidatesBase,
} from './use-app-access-control'
const NAME_SPACE = 'access-control'
type UpdateAccessModeParams = {
appId: App['id']
subjects?: Pick<Subject, 'subjectId' | 'subjectType'>[]
accessMode: AccessMode
}
type SearchForWhiteListCandidatesQuery = {
keyword?: string
groupId?: AccessControlGroup['id']
resultsPerPage?: number
}
type UserCanAccessAppParams = {
appId?: string
isInstalledApp?: boolean
enabled?: boolean
}
export const useAppWhiteListSubjects = (appId: string | undefined, enabled: boolean) => {
return useAppWhiteListSubjectsBase(appId, enabled)
}
export const useSearchForWhiteListCandidates = (
query: SearchForWhiteListCandidatesQuery,
enabled: boolean,
) => {
return useSearchForWhiteListCandidatesBase(query, enabled)
}
export const useGetUserCanAccessApp = (params: UserCanAccessAppParams) => {
return useGetUserCanAccessAppBase(params)
}
export const useUpdateAccessMode = () => {
const queryClient = useQueryClient()
return useMutation({
mutationKey: [NAME_SPACE, 'update-access-mode'],
mutationFn: (params: UpdateAccessModeParams) => {
return consoleClient.enterprise.webAppAuth.updateWebAppWhitelistSubjects({
body: params,
})
},
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: consoleQuery.enterprise.webAppAuth.getWebAppAccessMode.key({ type: 'query' }),
})
queryClient.invalidateQueries({
queryKey: [NAME_SPACE, 'app-whitelist-subjects'],
})
},
})
}