diff --git a/src/lib/components/common/InterfaceSettings.svelte b/src/lib/components/common/InterfaceSettings.svelte index d81c23067e..2122a2112c 100644 --- a/src/lib/components/common/InterfaceSettings.svelte +++ b/src/lib/components/common/InterfaceSettings.svelte @@ -2,6 +2,7 @@ import { canUseChannels, canUseTemporaryChats, + canUseWebSearch, isSettingsAdmin } from '$lib/utils/settings-access'; import { config, settings, user } from '$lib/stores'; @@ -1638,34 +1639,36 @@

-
-
- - - + {$i18n.t('settings.personal.interface.webSearchInChat.label')} + + + +
+

+ {$i18n.t('settings.personal.interface.webSearchInChat.description')} +

-

- {$i18n.t('settings.personal.interface.webSearchInChat.description')} -

- + {/if}
{$i18n.t('settings.personal.interface.sections.input.title')} diff --git a/src/lib/utils/settings-access.ts b/src/lib/utils/settings-access.ts index 63f092019b..01e244415b 100644 --- a/src/lib/utils/settings-access.ts +++ b/src/lib/utils/settings-access.ts @@ -21,6 +21,9 @@ export const canUseTemporaryChats = ({ user }: SettingsAccessContext) => export const canUseChannels = ({ user, config }: SettingsAccessContext) => config?.features?.enable_channels && (user?.role === 'admin' || (user?.permissions?.features?.channels ?? true)); +export const canUseWebSearch = ({ user, config }: SettingsAccessContext) => + config?.features?.enable_web_search && + (user?.role === 'admin' || user?.permissions?.features?.web_search); export const isSettingsAdmin = ({ user }: SettingsAccessContext) => user?.role === 'admin'; /** Only permission-gated text needs an explicit rule. Provider/disclosure state is irrelevant. */ @@ -70,5 +73,6 @@ export function canSearchSetting( return !!canUseTemporaryChats(context); if (stem === 'settings.personal.interface.compressImagesInChannels') return !!canUseChannels(context); + if (stem === 'settings.personal.interface.webSearchInChat') return !!canUseWebSearch(context); return true; }