diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 72651005c9..a7db457278 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1143,10 +1143,18 @@ USER_PERMISSIONS_CHAT_CONTROLS = ( os.environ.get("USER_PERMISSIONS_CHAT_CONTROLS", "True").lower() == "true" ) +USER_PERMISSIONS_CHAT_VALVES = ( + os.environ.get("USER_PERMISSIONS_CHAT_VALVES", "True").lower() == "true" +) + USER_PERMISSIONS_CHAT_SYSTEM_PROMPT = ( os.environ.get("USER_PERMISSIONS_CHAT_SYSTEM_PROMPT", "True").lower() == "true" ) +USER_PERMISSIONS_CHAT_PARAMS = ( + os.environ.get("USER_PERMISSIONS_CHAT_PARAMS", "True").lower() == "true" +) + USER_PERMISSIONS_CHAT_FILE_UPLOAD = ( os.environ.get("USER_PERMISSIONS_CHAT_FILE_UPLOAD", "True").lower() == "true" ) @@ -1232,7 +1240,9 @@ DEFAULT_USER_PERMISSIONS = { }, "chat": { "controls": USER_PERMISSIONS_CHAT_CONTROLS, + "valves": USER_PERMISSIONS_CHAT_VALVES, "system_prompt": USER_PERMISSIONS_CHAT_SYSTEM_PROMPT, + "params": USER_PERMISSIONS_CHAT_PARAMS, "file_upload": USER_PERMISSIONS_CHAT_FILE_UPLOAD, "delete": USER_PERMISSIONS_CHAT_DELETE, "edit": USER_PERMISSIONS_CHAT_EDIT, diff --git a/backend/open_webui/routers/users.py b/backend/open_webui/routers/users.py index d094047732..e936fa1838 100644 --- a/backend/open_webui/routers/users.py +++ b/backend/open_webui/routers/users.py @@ -134,7 +134,9 @@ class SharingPermissions(BaseModel): class ChatPermissions(BaseModel): controls: bool = True + valves: bool = True system_prompt: bool = True + params: bool = True file_upload: bool = True delete: bool = True edit: bool = True diff --git a/src/lib/components/admin/Users/Groups.svelte b/src/lib/components/admin/Users/Groups.svelte index da026613f3..8b405c0b7a 100644 --- a/src/lib/components/admin/Users/Groups.svelte +++ b/src/lib/components/admin/Users/Groups.svelte @@ -66,7 +66,9 @@ }, chat: { controls: true, + valves: true, system_prompt: true, + params: true, file_upload: true, delete: true, edit: true, diff --git a/src/lib/components/admin/Users/Groups/EditGroupModal.svelte b/src/lib/components/admin/Users/Groups/EditGroupModal.svelte index eaf4e45b5c..1bec9b76b6 100644 --- a/src/lib/components/admin/Users/Groups/EditGroupModal.svelte +++ b/src/lib/components/admin/Users/Groups/EditGroupModal.svelte @@ -48,10 +48,20 @@ }, chat: { controls: true, + valves: true, + system_prompt: true, + params: true, file_upload: true, delete: true, edit: true, - temporary: true + share: true, + export: true, + stt: true, + tts: true, + call: true, + multiple_models: true, + temporary: true, + temporary_enforced: false }, features: { direct_tool_servers: false, diff --git a/src/lib/components/admin/Users/Groups/Permissions.svelte b/src/lib/components/admin/Users/Groups/Permissions.svelte index 04e81a8076..24a7f1216b 100644 --- a/src/lib/components/admin/Users/Groups/Permissions.svelte +++ b/src/lib/components/admin/Users/Groups/Permissions.svelte @@ -21,6 +21,9 @@ }, chat: { controls: true, + valves: true, + system_prompt: true, + params: true, file_upload: true, delete: true, edit: true, @@ -263,6 +266,14 @@ +
+
+ {$i18n.t('Allow Chat Valves')} +
+ + +
+
{$i18n.t('Allow Chat System Prompt')} @@ -271,6 +282,14 @@
+
+
+ {$i18n.t('Allow Chat Params')} +
+ + +
+
{$i18n.t('Allow Chat Delete')} diff --git a/src/lib/components/chat/Controls/Controls.svelte b/src/lib/components/chat/Controls/Controls.svelte index 1954493d1d..384428ed26 100644 --- a/src/lib/components/chat/Controls/Controls.svelte +++ b/src/lib/components/chat/Controls/Controls.svelte @@ -30,70 +30,74 @@
-
- {#if chatFiles.length > 0} - -
- {#each chatFiles as file, fileIdx} - { - // Remove the file from the chatFiles array + {#if $user?.role === 'admin' || ($user?.permissions.chat?.controls ?? true)} +
+ {#if chatFiles.length > 0} + +
+ {#each chatFiles as file, fileIdx} + { + // Remove the file from the chatFiles array - chatFiles.splice(fileIdx, 1); - chatFiles = chatFiles; - }} - on:click={() => { - console.log(file); - }} - /> - {/each} -
-
- -
- {/if} - - -
- -
-
- - {#if $user?.role === 'admin' || ($user?.permissions.chat?.system_prompt ?? true)} -
- - -
-