enh: access grant level perms

This commit is contained in:
Timothy Jaeryang Baek
2026-02-23 15:49:05 -06:00
parent a52e6c2d57
commit 3d99de6771
22 changed files with 201 additions and 8 deletions
@@ -33,6 +33,7 @@
export let share = true;
export let sharePublic = true;
export let shareUsers = true;
let groups: any[] = [];
const resolvingGroupIds = new Set<string>();
@@ -419,7 +420,7 @@
});
</script>
<AddAccessModal bind:show={showAddAccessModal} onAdd={handleAddAccess} />
<AddAccessModal bind:show={showAddAccessModal} {shareUsers} onAdd={handleAddAccess} />
<div class=" rounded-lg flex flex-col gap-1">
<div class="py-2">
@@ -562,6 +563,7 @@
{/each}
<!-- Users -->
{#if shareUsers}
{#each selectedUsers as user}
<div
class="flex items-center gap-3 justify-between text-sm w-full transition border-b border-gray-50 dark:border-gray-850 pb-2 last:border-0"
@@ -607,6 +609,7 @@
</div>
</div>
{/each}
{/if}
{#if !hasPublicReadGrant(accessGrants ?? []) && accessGroups.length === 0 && selectedUsers.length === 0}
<div class="text-xs text-gray-500 text-center py-4">
@@ -20,6 +20,7 @@
export let share = true;
export let sharePublic = true;
export let shareUsers = true;
export let onChange = () => {};
</script>
@@ -48,6 +49,7 @@
{accessRoles}
{share}
{sharePublic}
{shareUsers}
/>
</div>
</div>
@@ -7,6 +7,7 @@
import MemberSelector from '$lib/components/workspace/common/MemberSelector.svelte';
export let show = false;
export let shareUsers = true;
export let onAdd = (payload: { userIds: string[]; groupIds: string[] }) => {};
let userIds: string[] = [];
@@ -51,7 +52,7 @@
}}
>
<div class="flex flex-col w-full h-full pb-2">
<MemberSelector bind:userIds bind:groupIds includeGroups={true} />
<MemberSelector bind:userIds bind:groupIds includeGroups={true} includeUsers={shareUsers} />
</div>
<div class="flex justify-end pt-3 text-sm font-medium gap-1.5">
@@ -19,6 +19,7 @@
import { getGroups } from '$lib/apis/groups';
export let includeGroups = true;
export let includeUsers = true;
export let pagination = false;
export let groupIds = [];
@@ -237,6 +238,7 @@
</div>
{/if}
{#if includeUsers}
<div class="text-xs text-gray-500 mb-1 mx-1">
{$i18n.t('Users')}
</div>
@@ -295,6 +297,7 @@
{/if}
{/each}
</div>
{/if}
</div>
</div>
</div>