From a8fc44c99759b0fe04254feb5be01229b4e54033 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Mon, 27 Oct 2025 13:46:17 +0100 Subject: [PATCH] fix: set space image action showing outside of project spaces --- .../composables/actions/files/useFileActionsSetImage.ts | 7 ++++--- .../actions/files/useFileActionsSetImage.spec.ts | 9 +++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/web-pkg/src/composables/actions/files/useFileActionsSetImage.ts b/packages/web-pkg/src/composables/actions/files/useFileActionsSetImage.ts index aa686d56ab..55ca2ee1aa 100644 --- a/packages/web-pkg/src/composables/actions/files/useFileActionsSetImage.ts +++ b/packages/web-pkg/src/composables/actions/files/useFileActionsSetImage.ts @@ -1,5 +1,4 @@ import { isLocationSpacesActive } from '../../../router' -import { usePreviewService } from '../../previewService' import { useClientService } from '../../clientService' import { useLoadingService } from '../../loadingService' import { useRouter } from '../../router' @@ -8,6 +7,7 @@ import { computed } from 'vue' import { FileAction, FileActionOptions } from '../types' import { useModals, useUserStore } from '../../piniaStores' import SpaceImageModal from '../../../components/Spaces/SpaceImageModal.vue' +import { isProjectSpaceResource } from '@opencloud-eu/web-client' export const useFileActionsSetImage = () => { const userStore = useUserStore() @@ -15,7 +15,6 @@ export const useFileActionsSetImage = () => { const { $gettext } = useGettext() const clientService = useClientService() const loadingService = useLoadingService() - const previewService = usePreviewService() const { dispatchModal } = useModals() const handler = async ({ space, resources }: FileActionOptions) => { @@ -56,7 +55,9 @@ export const useFileActionsSetImage = () => { if (!space) { return false } - + if (!isProjectSpaceResource(space)) { + return false + } return space.canEditImage({ user: userStore.user }) }, class: 'oc-files-actions-set-space-image-trigger' diff --git a/packages/web-pkg/tests/unit/composables/actions/files/useFileActionsSetImage.spec.ts b/packages/web-pkg/tests/unit/composables/actions/files/useFileActionsSetImage.spec.ts index d8db1caae1..b92a635b0b 100644 --- a/packages/web-pkg/tests/unit/composables/actions/files/useFileActionsSetImage.spec.ts +++ b/packages/web-pkg/tests/unit/composables/actions/files/useFileActionsSetImage.spec.ts @@ -38,6 +38,15 @@ describe('setImage', () => { } }) }) + it.each(['personal', 'share'])('should be false when space is of type %s', (driveType) => { + const space = mock({ canEditImage: () => true, driveType }) + + getWrapper({ + setup: ({ actions }) => { + expect(unref(actions)[0].isVisible({ space, resources: [space] })).toBe(false) + } + }) + }) }) describe('handler', () => {