From 8364db2e0528e4350924bff0ea1f8a882d2cc8b3 Mon Sep 17 00:00:00 2001 From: TheLastFrame <16117728+TheLastFrame@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:31:52 +0100 Subject: [PATCH 1/2] feat: user permissions for workspace in UI --- .../workspace/common/AccessControl.svelte | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/src/lib/components/workspace/common/AccessControl.svelte b/src/lib/components/workspace/common/AccessControl.svelte index 0770b0f365..59ccb653ff 100644 --- a/src/lib/components/workspace/common/AccessControl.svelte +++ b/src/lib/components/workspace/common/AccessControl.svelte @@ -4,6 +4,7 @@ const i18n = getContext('i18n'); import { getGroups } from '$lib/apis/groups'; + import { getAllUsers } from '$lib/apis/users'; import Tooltip from '$lib/components/common/Tooltip.svelte'; import Plus from '$lib/components/icons/Plus.svelte'; import UserCircleSolid from '$lib/components/icons/UserCircleSolid.svelte'; @@ -21,6 +22,9 @@ let selectedGroupId = ''; let groups = []; + let selectedUserId = ''; + let users = []; + $: if (!sharePublic && accessControl === null) { initPublicAccess(); } @@ -43,6 +47,8 @@ onMount(async () => { groups = await getGroups(localStorage.token, true); + users = await getAllUsers(localStorage.token); + users = users?.users ?? []; if (accessControl === null) { initPublicAccess(); @@ -253,6 +259,111 @@ + + + {@const accessUsers = users.filter((user) => + (accessControl?.read?.user_ids ?? []).includes(user.id) + )} +