From 5e401b85c2f63c82434ebb6533a03234abb27057 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 16 Jun 2025 15:53:05 +0200 Subject: [PATCH] Added permission to enable/disable image capture and attch knownledge --- backend/open_webui/config.py | 6 ++++ backend/open_webui/routers/users.py | 2 ++ .../admin/Users/Groups/Permissions.svelte | 32 +++++++++++++++++++ .../chat/MessageInput/InputMenu.svelte | 4 +++ src/lib/constants/permissions.ts | 2 ++ 5 files changed, 46 insertions(+) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index ec541f5a336e..a6e0193c2a24 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1831,6 +1831,10 @@ def reachable(host: str, port: int) -> bool: USER_PERMISSIONS_CHAT_SYSTEM_PROMPT = os.getenv('USER_PERMISSIONS_CHAT_SYSTEM_PROMPT', 'True').lower() == 'true' +USER_PERMISSIONS_CHAT_IMAGE_CAPTURE = os.getenv('USER_PERMISSIONS_CHAT_IMAGE_CAPTURE', 'False').lower() == 'true' + +USER_PERMISSIONS_CHAT_ATTACH_KNOWLEDGE = os.getenv('USER_PERMISSIONS_CHAT_ATTACH_KNOWLEDGE', 'False').lower() == 'true' + USER_PERMISSIONS_CHAT_PARAMS = os.getenv('USER_PERMISSIONS_CHAT_PARAMS', 'True').lower() == 'true' USER_PERMISSIONS_CHAT_FILE_UPLOAD = os.getenv('USER_PERMISSIONS_CHAT_FILE_UPLOAD', 'True').lower() == 'true' @@ -1958,6 +1962,8 @@ def reachable(host: str, port: int) -> bool: 'controls': USER_PERMISSIONS_CHAT_CONTROLS, 'valves': USER_PERMISSIONS_CHAT_VALVES, 'system_prompt': USER_PERMISSIONS_CHAT_SYSTEM_PROMPT, + 'image_capture': USER_PERMISSIONS_CHAT_IMAGE_CAPTURE, + 'attach_knowledge': USER_PERMISSIONS_CHAT_ATTACH_KNOWLEDGE, 'params': USER_PERMISSIONS_CHAT_PARAMS, 'file_upload': USER_PERMISSIONS_CHAT_FILE_UPLOAD, 'web_upload': USER_PERMISSIONS_CHAT_WEB_UPLOAD, diff --git a/backend/open_webui/routers/users.py b/backend/open_webui/routers/users.py index 01ea3aa5e47c..9fa0abd6003a 100644 --- a/backend/open_webui/routers/users.py +++ b/backend/open_webui/routers/users.py @@ -217,6 +217,8 @@ class ChatPermissions(BaseModel): controls: bool = True valves: bool = True system_prompt: bool = True + image_capture: bool = True + attach_knowledge: bool = True params: bool = True file_upload: bool = True web_upload: bool = True diff --git a/src/lib/components/admin/Users/Groups/Permissions.svelte b/src/lib/components/admin/Users/Groups/Permissions.svelte index 2f276ab364ea..03e29b40bdb0 100644 --- a/src/lib/components/admin/Users/Groups/Permissions.svelte +++ b/src/lib/components/admin/Users/Groups/Permissions.svelte @@ -706,6 +706,38 @@ {/if} +
+
+
+ {$i18n.t('Allow Image capture')} +
+ +
+ {#if defaultPermissions?.chat?.image_capture && !permissions.chat.image_capture} +
+
+ {$i18n.t('This is a default user permission and will remain enabled.')} +
+
+ {/if} +
+ +
+
+
+ {$i18n.t('Allow Attach Knowledge')} +
+ +
+ {#if defaultPermissions?.chat?.attach_knowledge && !permissions.chat.attach_knowledge} +
+
+ {$i18n.t('This is a default user permission and will remain enabled.')} +
+
+ {/if} +
+
diff --git a/src/lib/components/chat/MessageInput/InputMenu.svelte b/src/lib/components/chat/MessageInput/InputMenu.svelte index 56a98627f1a2..c5b0664bdd84 100644 --- a/src/lib/components/chat/MessageInput/InputMenu.svelte +++ b/src/lib/components/chat/MessageInput/InputMenu.svelte @@ -155,6 +155,7 @@ + {#if $user?.role === 'admin' || $user?.permissions.chat?.image_capture} {$i18n.t('Capture')}
+ {/if} {/if} + {#if $user?.role === 'admin' || $user?.permissions.chat?.attach_knowledge} + {/if}