refac: access controls

This commit is contained in:
Timothy Jaeryang Baek
2025-01-20 23:20:47 -08:00
parent aa442f694b
commit 45f4bc18f8
8 changed files with 59 additions and 20 deletions

View File

@@ -9,6 +9,7 @@
import Cog6 from '$lib/components/icons/Cog6.svelte';
import Wrench from '$lib/components/icons/Wrench.svelte';
import ManageOllamaModal from './ManageOllamaModal.svelte';
import ArrowDownTray from '$lib/components/icons/ArrowDownTray.svelte';
export let onDelete = () => {};
export let onSubmit = () => {};
@@ -70,7 +71,7 @@
}}
type="button"
>
<Wrench />
<ArrowDownTray />
</button>
</Tooltip>

View File

@@ -620,6 +620,7 @@
onChange={() => {
changeDebounceHandler();
}}
accessRoles={['read', 'write']}
/>
<div class="w-full mb-2.5">
<div class=" flex w-full">

View File

@@ -68,7 +68,11 @@
});
</script>
<AccessControlModal bind:show={showAccessControlModal} bind:accessControl />
<AccessControlModal
bind:show={showAccessControlModal}
bind:accessControl
accessRoles={['read', 'write']}
/>
<div class="w-full max-h-full flex justify-center">
<form

View File

@@ -179,7 +179,11 @@ class Tools:
};
</script>
<AccessControlModal bind:show={showAccessControlModal} bind:accessControl />
<AccessControlModal
bind:show={showAccessControlModal}
bind:accessControl
accessRoles={['read', 'write']}
/>
<div class=" flex flex-col justify-between w-full overflow-y-auto h-full">
<div class="mx-auto w-full md:px-0 h-full">

View File

@@ -12,6 +12,7 @@
export let onChange: Function = () => {};
export let accessRoles = ['read'];
export let accessControl = null;
let selectedGroupId = '';
@@ -192,24 +193,25 @@
class=""
type="button"
on:click={() => {
if (accessControl.write.group_ids.includes(group.id)) {
accessControl.write.group_ids = accessControl.write.group_ids.filter(
(group_id) => group_id !== group.id
);
} else {
accessControl.write.group_ids = [
...accessControl.write.group_ids,
group.id
];
if (accessRoles.includes('write')) {
if (accessControl.write.group_ids.includes(group.id)) {
accessControl.write.group_ids = accessControl.write.group_ids.filter(
(group_id) => group_id !== group.id
);
} else {
accessControl.write.group_ids = [
...accessControl.write.group_ids,
group.id
];
}
}
}}
>
<Badge
type={accessControl.write.group_ids.includes(group.id) ? 'info' : 'success'}
content={$i18n.t(
accessControl.write.group_ids.includes(group.id) ? 'Write' : 'Read'
)}
/>
{#if accessControl.write.group_ids.includes(group.id)}
<Badge type={'success'} content={$i18n.t('Write')} />
{:else}
<Badge type={'info'} content={$i18n.t('Read')} />
{/if}
</button>
<button

View File

@@ -7,6 +7,7 @@
export let show = false;
export let accessControl = null;
export let accessRoles = ['read'];
export let onChange = () => {};
</script>
@@ -37,7 +38,7 @@
</div>
<div class="w-full px-5 pb-4 dark:text-white">
<AccessControl bind:accessControl {onChange} />
<AccessControl bind:accessControl {onChange} {accessRoles} />
</div>
</div>
</Modal>