Files
open-webui/backend/open_webui
Classic298 646a568ae6 fix: enforce global web search and image generation switches on the legacy function-calling path (#27669)
The legacy function-calling path acted on the client-supplied `features` dict after checking only the per-user permission, so a user who still held `features.web_search` or `features.image_generation` could keep triggering web searches and image generation after an administrator had switched those off instance-wide. The native function-calling path already gates the equivalent builtin tools on `web.search.enable` and `image_generation.enable` in `get_builtin_tools`, so the two paths disagreed and the admin-level switch did not actually stop the outbound provider calls it was turned off to stop.

Gate the legacy web search handler on `web.search.enable` at its call site, and gate `chat_image_generation_handler` on the two image switches internally. The image handler needs the check inside it because `image_generation.enable` and `images.edit.enable` are independent: editing stays available when generation is disabled, matching the `/images/generations` and `/images/edit` routes and the native `generate_image`/`edit_image` tools. The handler calls `image_generations`/`image_edits` directly and so bypasses the route guards, which is why the check has to live at the caller.

The "Creating image" status event moves below the new guard so a disabled configuration returns without leaving an unresolved progress indicator in the chat.
2026-08-17 02:15:05 -06:00
..
…
2026-08-10 23:22:08 -06:00
2026-08-14 00:22:17 -06:00
2026-07-27 19:39:36 -04:00
2026-07-31 17:41:14 -04:00
2026-08-17 00:24:47 -07:00
2026-07-27 19:39:36 -04:00
2026-08-17 00:47:32 -07:00
2026-08-16 23:21:00 -07:00
2026-08-17 00:47:32 -07:00
2026-08-14 00:22:17 -06:00