From 35279b79b1fac3f14730a2a957fe97ebba57480b Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Mon, 26 Aug 2024 10:20:19 +0200 Subject: [PATCH] fix: missing space member list for group memberships --- ...fix-missing-space-members-for-group-memberships | 6 ++++++ .../src/components/SideBar/Shares/FileShares.vue | 14 ++------------ .../components/SideBar/Shares/FileShares.spec.ts | 2 +- 3 files changed, 9 insertions(+), 13 deletions(-) create mode 100644 changelog/unreleased/bugfix-missing-space-members-for-group-memberships diff --git a/changelog/unreleased/bugfix-missing-space-members-for-group-memberships b/changelog/unreleased/bugfix-missing-space-members-for-group-memberships new file mode 100644 index 00000000000..23cfb95ea60 --- /dev/null +++ b/changelog/unreleased/bugfix-missing-space-members-for-group-memberships @@ -0,0 +1,6 @@ +Bugfix: Missing space members for group memberships + +We've fixed a bug where group members of a space could not see other space members on regular resources within the space. + +https://github.com/owncloud/web/issues/11384 +https://github.com/owncloud/web/pull/11395 diff --git a/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue b/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue index 9c20e907cfa..187b7f0955a 100644 --- a/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue +++ b/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue @@ -144,15 +144,6 @@ export default defineComponent({ const toggleMemberListCollapsed = () => { memberListCollapsed.value = !unref(memberListCollapsed) } - const currentUserIsMemberOfSpace = computed(() => { - const userId = store.getters.user?.id - if (!userId) { - return false - } - return store.getters['runtime/spaces/spaceMembers'].some( - (member) => member.collaborator?.name === userId - ) - }) const ancestorMetaData: Ref = computed( () => store.getters['runtime/ancestorMetaData/ancestorMetaData'] @@ -175,7 +166,6 @@ export default defineComponent({ toggleShareListCollapsed, memberListCollapsed, toggleMemberListCollapsed, - currentUserIsMemberOfSpace, hasProjectSpaces: useCapabilityProjectSpacesEnabled(), hasShareJail: useCapabilityShareJailEnabled(), hasResharing: useCapabilityFilesSharingResharing(), @@ -291,7 +281,7 @@ export default defineComponent({ return ( this.space?.driveType === 'project' && this.resource.type !== 'space' && - this.currentUserIsMemberOfSpace + this.space?.isMember(this.user) ) }, @@ -524,7 +514,7 @@ export default defineComponent({ // fixMe: head-breaking logic isShareModifiable(collaborator) { const isPersonalSpaceShare = !isProjectSpaceResource(this.space) - const isPersonalMember = this.currentUserIsMemberOfSpace + const isPersonalMember = this.space?.isMember(this.user) const isIndirectPersonalCollaborator = collaborator.indirect const isProjectSpaceShare = !isPersonalSpaceShare const isManager = this.space?.isManager(this.user) diff --git a/packages/web-app-files/tests/unit/components/SideBar/Shares/FileShares.spec.ts b/packages/web-app-files/tests/unit/components/SideBar/Shares/FileShares.spec.ts index 3cf161f1b09..d9795a237f5 100644 --- a/packages/web-app-files/tests/unit/components/SideBar/Shares/FileShares.spec.ts +++ b/packages/web-app-files/tests/unit/components/SideBar/Shares/FileShares.spec.ts @@ -131,7 +131,7 @@ describe('FileShares', () => { describe('current space', () => { it('loads space members if a space is given and the current user is member', () => { const user = { id: '1' } - const space = mock({ driveType: 'project' }) + const space = mock({ driveType: 'project', isMember: () => true }) const spaceMembers = [{ collaborator: { name: user.id } }, { collaborator: { name: 2 } }] const collaborator = getCollaborator() collaborator.collaborator = { ...collaborator.collaborator, name: user.id }