{$i18n.t('Verify SSL Certificate')}
diff --git a/src/lib/components/admin/Users/Groups/EditGroupModal.svelte b/src/lib/components/admin/Users/Groups/EditGroupModal.svelte
index c0896a17b90..791aa9f0fcf 100644
--- a/src/lib/components/admin/Users/Groups/EditGroupModal.svelte
+++ b/src/lib/components/admin/Users/Groups/EditGroupModal.svelte
@@ -8,6 +8,7 @@
import General from './General.svelte';
import Permissions from './Permissions.svelte';
import Users from './Users.svelte';
+ import { DEFAULT_PERMISSIONS } from '$lib/constants/permissions';
import UserPlusSolid from '$lib/components/icons/UserPlusSolid.svelte';
import WrenchSolid from '$lib/components/icons/WrenchSolid.svelte';
import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
@@ -36,63 +37,7 @@
export let description = '';
export let data = {};
- export let permissions = {
- workspace: {
- models: false,
- knowledge: false,
- prompts: false,
- tools: false,
- models_import: false,
- models_export: false,
- prompts_import: false,
- prompts_export: false,
- tools_import: false,
- tools_export: false
- },
- sharing: {
- models: false,
- public_models: false,
- knowledge: false,
- public_knowledge: false,
- prompts: false,
- public_prompts: false,
- tools: false,
- public_tools: false,
- notes: false,
- public_notes: false
- },
- chat: {
- controls: true,
- valves: true,
- system_prompt: true,
- params: true,
- file_upload: true,
- delete: true,
- delete_message: true,
- continue_response: true,
- regenerate_response: true,
- rate_response: true,
- edit: true,
- share: true,
- export: true,
- stt: true,
- tts: true,
- call: true,
- multiple_models: true,
- temporary: true,
- temporary_enforced: false
- },
- features: {
- api_keys: false,
- notes: true,
- channels: true,
- folders: true,
- direct_tool_servers: false,
- web_search: true,
- image_generation: true,
- code_interpreter: true
- }
- };
+ export let permissions = DEFAULT_PERMISSIONS;
const submitHandler = async () => {
loading = true;
@@ -114,7 +59,15 @@
if (group) {
name = group.name;
description = group.description;
- permissions = group?.permissions ?? {};
+ const loadedPermissions = group?.permissions ?? {};
+ // Create fresh object from defaults, then overlay loaded values
+ permissions = {
+ workspace: { ...DEFAULT_PERMISSIONS.workspace, ...loadedPermissions.workspace },
+ sharing: { ...DEFAULT_PERMISSIONS.sharing, ...loadedPermissions.sharing },
+ chat: { ...DEFAULT_PERMISSIONS.chat, ...loadedPermissions.chat },
+ features: { ...DEFAULT_PERMISSIONS.features, ...loadedPermissions.features },
+ settings: { ...DEFAULT_PERMISSIONS.settings, ...loadedPermissions.settings }
+ };
data = group?.data ?? {};
userCount = group?.member_count ?? 0;
diff --git a/src/lib/components/admin/Users/Groups/General.svelte b/src/lib/components/admin/Users/Groups/General.svelte
index 745611ec1f1..1922f001384 100644
--- a/src/lib/components/admin/Users/Groups/General.svelte
+++ b/src/lib/components/admin/Users/Groups/General.svelte
@@ -2,7 +2,6 @@
import { getContext } from 'svelte';
import Textarea from '$lib/components/common/Textarea.svelte';
import Tooltip from '$lib/components/common/Tooltip.svelte';
- import Switch from '$lib/components/common/Switch.svelte';
const i18n = getContext('i18n');
@@ -73,21 +72,30 @@
- {$i18n.t('Allow Group Sharing')}
+ {$i18n.t('Who can share to this group')}
- {
- if (data?.config?.share) {
- data.config.share = e.detail;
+ const value = e.target.value;
+ let shareValue;
+ if (value === 'false') {
+ shareValue = false;
+ } else if (value === 'true') {
+ shareValue = true;
} else {
- data.config = { ...(data?.config ?? {}), share: e.detail };
+ shareValue = value;
}
+ data.config = { ...(data?.config ?? {}), share: shareValue };
}}
- />
+ >
+
+
+
+
diff --git a/src/lib/components/admin/Users/Groups/Permissions.svelte b/src/lib/components/admin/Users/Groups/Permissions.svelte
index 58c3547d336..3284f6171c4 100644
--- a/src/lib/components/admin/Users/Groups/Permissions.svelte
+++ b/src/lib/components/admin/Users/Groups/Permissions.svelte
@@ -5,64 +5,7 @@
import Switch from '$lib/components/common/Switch.svelte';
import Tooltip from '$lib/components/common/Tooltip.svelte';
- // Default values for permissions
- const DEFAULT_PERMISSIONS = {
- workspace: {
- models: false,
- knowledge: false,
- prompts: false,
- tools: false,
- models_import: false,
- models_export: false,
- prompts_import: false,
- prompts_export: false,
- tools_import: false,
- tools_export: false
- },
- sharing: {
- models: false,
- public_models: false,
- knowledge: false,
- public_knowledge: false,
- prompts: false,
- public_prompts: false,
- tools: false,
- public_tools: false,
- notes: false,
- public_notes: false
- },
- chat: {
- controls: true,
- valves: true,
- system_prompt: true,
- params: true,
- file_upload: true,
- delete: true,
- delete_message: true,
- continue_response: true,
- regenerate_response: true,
- rate_response: true,
- edit: true,
- share: true,
- export: true,
- stt: true,
- tts: true,
- call: true,
- multiple_models: true,
- temporary: true,
- temporary_enforced: false
- },
- features: {
- api_keys: false,
- notes: true,
- channels: true,
- folders: true,
- direct_tool_servers: false,
- web_search: true,
- image_generation: true,
- code_interpreter: true
- }
- };
+ import { DEFAULT_PERMISSIONS } from '$lib/constants/permissions';
export let permissions = {};
export let defaultPermissions = {};
@@ -79,7 +22,8 @@
workspace: { ...defaults.workspace, ...obj.workspace },
sharing: { ...defaults.sharing, ...obj.sharing },
chat: { ...defaults.chat, ...obj.chat },
- features: { ...defaults.features, ...obj.features }
+ features: { ...defaults.features, ...obj.features },
+ settings: { ...defaults.settings, ...obj.settings }
};
}
@@ -838,5 +782,43 @@