dify/web/app/components/header/account-setting/constants.ts
Wu Tianwei 599d92ef6b
fix: Fix frontend rbac issues (#37872)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-25 05:51:39 +00:00

72 lines
2.2 KiB
TypeScript

import type { IntegrationSection } from '@/app/components/integrations/routes'
import { INTEGRATION_SECTION_VALUES } from '@/app/components/integrations/routes'
export const ACCOUNT_SETTING_MODAL_ACTION = 'showSettings'
export const ACCOUNT_SETTING_TAB = {
PROVIDER: 'provider',
MEMBERS: 'members',
ROLES_AND_PERMISSIONS: 'roles-and-permissions',
PERMISSION_SET: 'permission-set',
BILLING: 'billing',
DATA_SOURCE: 'data-source',
API_BASED_EXTENSION: 'custom-endpoint',
CUSTOM: 'custom',
PREFERENCES: 'preferences',
LANGUAGE: 'language',
} as const
export type AccountSettingTab = typeof ACCOUNT_SETTING_TAB[keyof typeof ACCOUNT_SETTING_TAB]
export const DEFAULT_ACCOUNT_SETTING_TAB = ACCOUNT_SETTING_TAB.MEMBERS
const WORKSPACE_SETTING_TAB_VALUES = [
ACCOUNT_SETTING_TAB.MEMBERS,
ACCOUNT_SETTING_TAB.ROLES_AND_PERMISSIONS,
ACCOUNT_SETTING_TAB.PERMISSION_SET,
ACCOUNT_SETTING_TAB.BILLING,
ACCOUNT_SETTING_TAB.CUSTOM,
] as const
export type WorkspaceSettingTab = typeof WORKSPACE_SETTING_TAB_VALUES[number]
const USER_SETTING_TAB_VALUES = [
ACCOUNT_SETTING_TAB.PREFERENCES,
ACCOUNT_SETTING_TAB.LANGUAGE,
] as const
export type UserSettingTab = typeof USER_SETTING_TAB_VALUES[number]
export type IntegrationSettingTab = IntegrationSection
export const SETTINGS_TAB_VALUES = [
...WORKSPACE_SETTING_TAB_VALUES,
...USER_SETTING_TAB_VALUES,
...INTEGRATION_SECTION_VALUES,
] as const
export type SettingsTab = typeof SETTINGS_TAB_VALUES[number]
export const isValidSettingsTab = (tab: string | null): tab is SettingsTab => {
if (!tab)
return false
return SETTINGS_TAB_VALUES.includes(tab as SettingsTab)
}
export const isWorkspaceSettingTab = (tab: SettingsTab | null): tab is WorkspaceSettingTab => {
if (!tab)
return false
return WORKSPACE_SETTING_TAB_VALUES.includes(tab as WorkspaceSettingTab)
}
export const isUserSettingTab = (tab: SettingsTab | null): tab is UserSettingTab => {
if (!tab)
return false
return USER_SETTING_TAB_VALUES.includes(tab as UserSettingTab)
}
export const isIntegrationSettingTab = (tab: SettingsTab | null): tab is IntegrationSettingTab => {
if (!tab)
return false
return INTEGRATION_SECTION_VALUES.includes(tab as IntegrationSection)
}