From 521da58ff3bcbb3205e695286ff8f71a64d23606 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Sat, 24 Oct 2026 04:19:39 +0200 Subject: [PATCH] fix: web search in chat setting shows while web search is off (#32972) Settings > Interface showed "Web Search in Chat" when web search is off for the instance or the user may not use it, and the choice had no effect. It now shows under the same conditions as the web search button in the chat input, and the settings search skips it otherwise. A saved choice is kept and applies again once web search is available. Refs #32830 --- .../common/InterfaceSettings.svelte | 55 ++++++++++--------- src/lib/utils/settings-access.ts | 4 ++ 2 files changed, 33 insertions(+), 26 deletions(-) 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; }