From 68dadc01af263435331e080589723787c2376f8a Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Mon, 19 Apr 2021 15:10:51 +0200 Subject: Consider read permission in sharing tab When updating a share we should make sure to use all the old permissions (and only change what we actually changed). So the READ permission in this case should also be fetched instead of always granted. Signed-off-by: Roeland Jago Douma --- apps/files_sharing/src/components/SharingEntry.vue | 13 ++++++++++++- apps/files_sharing/src/models/Share.js | 12 ++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'apps/files_sharing/src') diff --git a/apps/files_sharing/src/components/SharingEntry.vue b/apps/files_sharing/src/components/SharingEntry.vue index e07654a19c1..8167172ceea 100644 --- a/apps/files_sharing/src/components/SharingEntry.vue +++ b/apps/files_sharing/src/components/SharingEntry.vue @@ -326,6 +326,16 @@ export default { }, }, + /** + * Is this share readable + * Needed for some federated shares that might have been added from file drop links + */ + hasRead: { + get() { + return this.share.hasReadPermission + }, + }, + /** * Is the current share a folder ? * @returns {boolean} @@ -377,7 +387,8 @@ export default { methods: { updatePermissions({ isEditChecked = this.canEdit, isCreateChecked = this.canCreate, isDeleteChecked = this.canDelete, isReshareChecked = this.canReshare } = {}) { // calc permissions if checked - const permissions = this.permissionsRead + const permissions = 0 + | (this.hasRead ? this.permissionsRead : 0) | (isCreateChecked ? this.permissionsCreate : 0) | (isDeleteChecked ? this.permissionsDelete : 0) | (isEditChecked ? this.permissionsEdit : 0) diff --git a/apps/files_sharing/src/models/Share.js b/apps/files_sharing/src/models/Share.js index 085eab056df..7a4b96261c0 100644 --- a/apps/files_sharing/src/models/Share.js +++ b/apps/files_sharing/src/models/Share.js @@ -450,6 +450,18 @@ export default class Share { } // PERMISSIONS Shortcuts + + /** + * Does this share have READ permissions + * + * @returns {boolean} + * @readonly + * @memberof Share + */ + get hasReadPermission() { + return !!((this.permissions & OC.PERMISSION_READ)) + } + /** * Does this share have CREATE permissions * -- cgit v1.2.3