mirror of
https://github.com/langgenius/dify.git
synced 2026-09-19 10:11:30 +08:00
fix(web): hydrate workspace permissions before navigation render (#39524)
This commit is contained in:
@@ -153,6 +153,32 @@ vi.mock('@/service/client', () => ({
|
||||
...options,
|
||||
}),
|
||||
},
|
||||
rbac: {
|
||||
myPermissions: {
|
||||
get: {
|
||||
queryOptions: () => ({
|
||||
queryKey: ['current-permissions'],
|
||||
queryFn: async () => {
|
||||
if (mockPermissionKeysState.isPending) return new Promise(() => {})
|
||||
|
||||
return {
|
||||
workspace: {
|
||||
permission_keys: mockPermissionKeysState.permissionKeys,
|
||||
},
|
||||
app: {
|
||||
default_permission_keys: [],
|
||||
overrides: [],
|
||||
},
|
||||
dataset: {
|
||||
default_permission_keys: [],
|
||||
overrides: [],
|
||||
},
|
||||
}
|
||||
},
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
version: {
|
||||
@@ -354,24 +380,6 @@ describe('Console bootstrap', () => {
|
||||
can_auto_update: false,
|
||||
}
|
||||
mockGetRequest.mockImplementation((url: string) => {
|
||||
if (url === '/workspaces/current/rbac/my-permissions') {
|
||||
if (mockPermissionKeysState.isPending) return new Promise(() => {})
|
||||
|
||||
return Promise.resolve({
|
||||
workspace: {
|
||||
permission_keys: mockPermissionKeysState.permissionKeys,
|
||||
},
|
||||
app: {
|
||||
default_permission_keys: [],
|
||||
overrides: [],
|
||||
},
|
||||
dataset: {
|
||||
default_permission_keys: [],
|
||||
overrides: [],
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (url === '/version') return Promise.resolve(mockLangGeniusVersionState.data)
|
||||
|
||||
return Promise.reject(new Error(`Unexpected GET ${url}`))
|
||||
|
||||
@@ -2,15 +2,12 @@
|
||||
|
||||
import { atom } from 'jotai'
|
||||
import { atomWithQuery } from 'jotai-tanstack-query'
|
||||
import { workspacePermissionKeysQueryOptions } from '@/service/access-control/use-permission-keys'
|
||||
import { consoleQuery } from '@/service/client'
|
||||
import { emptyWorkspacePermissionKeys } from './app-context-normalizers'
|
||||
import { currentWorkspaceIdAtom } from './workspace-state'
|
||||
|
||||
const workspacePermissionKeysQueryAtom = atomWithQuery((get) => {
|
||||
const workspaceId = get(currentWorkspaceIdAtom)
|
||||
|
||||
return workspacePermissionKeysQueryOptions(workspaceId)
|
||||
})
|
||||
const workspacePermissionKeysQueryAtom = atomWithQuery(() =>
|
||||
consoleQuery.workspaces.current.rbac.myPermissions.get.queryOptions(),
|
||||
)
|
||||
|
||||
export const workspacePermissionKeysAtom = atom((get) => {
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user