diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2021-04-19 15:10:51 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2021-04-19 15:10:51 +0200 |
commit | 68dadc01af263435331e080589723787c2376f8a (patch) | |
tree | a36c48c8500790ae984031ade0de254f4514d8b6 /apps/files_sharing/src | |
parent | 9a69b8839389f133db55a41e1c2ba4435fd50c19 (diff) | |
download | nextcloud-server-68dadc01af263435331e080589723787c2376f8a.tar.gz nextcloud-server-68dadc01af263435331e080589723787c2376f8a.zip |
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 <roeland@famdouma.nl>
Diffstat (limited to 'apps/files_sharing/src')
-rw-r--r-- | apps/files_sharing/src/components/SharingEntry.vue | 13 | ||||
-rw-r--r-- | apps/files_sharing/src/models/Share.js | 12 |
2 files changed, 24 insertions, 1 deletions
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 @@ -327,6 +327,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 * |