aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/src
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2021-04-19 15:10:51 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2021-04-19 15:10:51 +0200
commit68dadc01af263435331e080589723787c2376f8a (patch)
treea36c48c8500790ae984031ade0de254f4514d8b6 /apps/files_sharing/src
parent9a69b8839389f133db55a41e1c2ba4435fd50c19 (diff)
downloadnextcloud-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.vue13
-rw-r--r--apps/files_sharing/src/models/Share.js12
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
*