diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js index a1580e3a792..e94bf80e401 100644 --- a/apps/files_sharing/src/mixins/SharesMixin.js +++ b/apps/files_sharing/src/mixins/SharesMixin.js @@ -11,6 +11,7 @@ import debounce from 'debounce' import PQueue from 'p-queue' import { fetchNode } from '../../../files/src/services/WebdavClient.ts' import { + ATOMIC_PERMISSIONS, BUNDLED_PERMISSIONS, } from '../lib/SharePermissionsToolBox.js' import Share from '../models/Share.ts' @@ -139,10 +140,12 @@ export default { hasCustomPermissions() { const bundledPermissions = [ BUNDLED_PERMISSIONS.ALL, + BUNDLED_PERMISSIONS.ALL_FILE, BUNDLED_PERMISSIONS.READ_ONLY, BUNDLED_PERMISSIONS.FILE_DROP, ] - return !bundledPermissions.includes(this.share.permissions) + const permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE + return !bundledPermissions.includes(permissionsWithoutShare) }, maxExpirationDateEnforced() { if (this.isExpiryDateEnforced) { diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index bdce43665d0..896d90442ee 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -1021,8 +1021,11 @@ export default { handleDefaultPermissions() { if (this.isNewShare) { const defaultPermissions = this.config.defaultPermissions - if (defaultPermissions === BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === BUNDLED_PERMISSIONS.ALL) { - this.sharingPermission = defaultPermissions.toString() + const permissionsWithoutShare = defaultPermissions & ~ATOMIC_PERMISSIONS.SHARE + if (permissionsWithoutShare === BUNDLED_PERMISSIONS.READ_ONLY + || permissionsWithoutShare === BUNDLED_PERMISSIONS.ALL + || permissionsWithoutShare === BUNDLED_PERMISSIONS.ALL_FILE) { + this.sharingPermission = permissionsWithoutShare.toString() } else { this.sharingPermission = 'custom' this.share.permissions = defaultPermissions