diff --git a/src/lib/components/workspace/Tools/ToolkitEditor.svelte b/src/lib/components/workspace/Tools/ToolkitEditor.svelte
index 63a54ab24..6057be6cb 100644
--- a/src/lib/components/workspace/Tools/ToolkitEditor.svelte
+++ b/src/lib/components/workspace/Tools/ToolkitEditor.svelte
@@ -11,6 +11,7 @@
import Tooltip from '$lib/components/common/Tooltip.svelte';
import LockClosed from '$lib/components/icons/LockClosed.svelte';
import AccessControlModal from '../common/AccessControlModal.svelte';
+ import { user } from '$lib/stores';
let formElement = null;
let loading = false;
@@ -183,6 +184,7 @@ class Tools:
bind:show={showAccessControlModal}
bind:accessControl
accessRoles={['read', 'write']}
+ allowPublic={$user?.permissions?.sharing?.public_tools || $user?.role === 'admin'}
/>
diff --git a/src/lib/components/workspace/common/AccessControl.svelte b/src/lib/components/workspace/common/AccessControl.svelte
index e4c6e3e48..9c3e0dd8b 100644
--- a/src/lib/components/workspace/common/AccessControl.svelte
+++ b/src/lib/components/workspace/common/AccessControl.svelte
@@ -15,14 +15,44 @@
export let accessRoles = ['read'];
export let accessControl = null;
+ export let allowPublic = true;
+
let selectedGroupId = '';
let groups = [];
+ $: if (!allowPublic && accessControl === null) {
+ accessControl = {
+ read: {
+ group_ids: [],
+ user_ids: []
+ },
+ write: {
+ group_ids: [],
+ user_ids: []
+ }
+ };
+ onChange(accessControl);
+ }
+
onMount(async () => {
groups = await getGroups(localStorage.token);
if (accessControl === null) {
- accessControl = null;
+ if (allowPublic) {
+ accessControl = null;
+ } else {
+ accessControl = {
+ read: {
+ group_ids: [],
+ user_ids: []
+ },
+ write: {
+ group_ids: [],
+ user_ids: []
+ }
+ };
+ onChange(accessControl);
+ }
} else {
accessControl = {
read: {
@@ -104,17 +134,21 @@
} else {
accessControl = {
read: {
- group_ids: []
+ group_ids: [],
+ user_ids: []
},
write: {
- group_ids: []
+ group_ids: [],
+ user_ids: []
}
};
}
}}
>
-
+ {#if allowPublic}
+
+ {/if}
diff --git a/src/lib/components/workspace/common/AccessControlModal.svelte b/src/lib/components/workspace/common/AccessControlModal.svelte
index cc7c59c86..d69408263 100644
--- a/src/lib/components/workspace/common/AccessControlModal.svelte
+++ b/src/lib/components/workspace/common/AccessControlModal.svelte
@@ -8,6 +8,7 @@
export let show = false;
export let accessControl = null;
export let accessRoles = ['read'];
+ export let allowPublic = true;
export let onChange = () => {};
@@ -38,7 +39,7 @@