From fc7beba7b7fa2658d4ad9c84ba75acf170093285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20G=C3=B6bel?= <dgoebel@techfak.uni-bielefeld.de> Date: Mon, 2 Jan 2023 16:46:39 +0100 Subject: [PATCH] Disable download and copy options for WRITE-only buckets #30 --- src/components/BucketView.vue | 6 +++++- src/stores/buckets.ts | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/BucketView.vue b/src/components/BucketView.vue index d83664e..2d99c32 100644 --- a/src/components/BucketView.vue +++ b/src/components/BucketView.vue @@ -283,6 +283,9 @@ const errorLoadingObjects: ComputedRef<boolean> = computed( const writableBucket: ComputedRef<boolean> = computed(() => bucketRepository.writableBucket(props.bucketName) ); +const readableBucket: ComputedRef<boolean> = computed(() => + bucketRepository.readableBucket(props.bucketName) +); // Lifecycle Hooks // ----------------------------------------------------------------------------- @@ -799,6 +802,7 @@ watch( type="button" class="btn btn-secondary" @click="downloadObject(obj.key, props.bucketName)" + :disabled="!readableBucket" > Download </button> @@ -839,7 +843,7 @@ watch( <button class="dropdown-item" type="button" - :disabled="!writableBucket" + :disabled="!writableBucket || !readableBucket" data-bs-toggle="modal" data-bs-target="#copy-object-modal" @click="objectState.copyObject = obj" diff --git a/src/stores/buckets.ts b/src/stores/buckets.ts index 3172c71..e62f8f9 100644 --- a/src/stores/buckets.ts +++ b/src/stores/buckets.ts @@ -31,6 +31,11 @@ export const useBucketStore = defineStore({ this.ownPermissions[bucketName] === undefined || this.ownPermissions[bucketName].permission !== "READ"; }, + readableBucket(): (bucketName: string) => boolean { + return (bucketName) => + this.ownPermissions[bucketName] === undefined || + this.ownPermissions[bucketName].permission !== "WRITE"; + }, }, actions: { _fetchOwnPermissions( -- GitLab