From bbb28fd483031ca00230f0d68a10785b48137950 Mon Sep 17 00:00:00 2001 From: fenn-cs Date: Tue, 26 Mar 2024 13:34:14 +0100 Subject: [PATCH] fix(share): Send correct share attributes upon share creation - Send correct share attributes (`share.attributes`) to server upon creation. - Delete parts of code that create or reference, `share.hasDownloadPermission` (Not required by Share API) Resolves : https://github.com/nextcloud/server/issues/44131 Signed-off-by: fenn-cs Signed-off-by: Eduardo Morales --- .../src/views/SharingDetailsTab.vue | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index faabe5ba33a..f3ad52eeb87 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -373,10 +373,14 @@ export default { */ canDownload: { get() { - return this.share.hasDownloadPermission + return this.share.attributes.find(attr => attr.key === 'download')?.enabled || false }, set(checked) { - this.updateAtomicPermissions({ isDownloadChecked: checked }) + // Find the 'download' attribute and update its value + const downloadAttr = this.share.attributes.find(attr => attr.key === 'download') + if (downloadAttr) { + downloadAttr.enabled = checked + } }, }, /** @@ -680,7 +684,6 @@ export default { isCreateChecked = this.canCreate, isDeleteChecked = this.canDelete, isReshareChecked = this.canReshare, - isDownloadChecked = this.canDownload, } = {}) { // calc permissions if checked const permissions = 0 @@ -690,9 +693,6 @@ export default { | (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0) | (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0) this.share.permissions = permissions - if (this.share.hasDownloadPermission !== isDownloadChecked) { - this.$set(this.share, 'hasDownloadPermission', isDownloadChecked) - } }, expandCustomPermissions() { if (!this.advancedSectionAccordionExpanded) { @@ -854,8 +854,8 @@ export default { shareType: share.shareType, shareWith: share.shareWith, permissions: share.permissions, - attributes: JSON.stringify(fileInfo.shareAttributes), expireDate: share.expireDate, + attributes: JSON.stringify(share.attributes), ...(share.note ? { note: share.note } : {}), ...(share.password ? { password: share.password } : {}), }) @@ -999,7 +999,7 @@ export default { flex-direction: column; } } - + /* Target component based style in NcCheckboxRadioSwitch slot content*/ :deep(span.checkbox-content__text.checkbox-radio-switch__text) { flex-wrap: wrap;