diff --git a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue index 473ad15e8ea86..f9173d84c1850 100644 --- a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue +++ b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue @@ -39,10 +39,7 @@ import IconPencil from 'vue-material-design-icons/PencilOutline.vue' import IconFileUpload from 'vue-material-design-icons/TrayArrowUp.vue' import DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue' import IconTune from 'vue-material-design-icons/Tune.vue' -import { - ATOMIC_PERMISSIONS, - getBundledPermissions, -} from '../lib/SharePermissionsToolBox.js' +import { getBundledPermissions } from '../lib/SharePermissionsToolBox.js' import ShareDetails from '../mixins/ShareDetails.js' import SharesMixin from '../mixins/SharesMixin.js' @@ -98,14 +95,13 @@ export default { }, preSelectedOption() { - // We remove the share permission for the comparison as it is not relevant for bundled permissions. - const permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE - const basePermissions = getBundledPermissions(true) - if (permissionsWithoutShare === basePermissions.READ_ONLY) { + const permissions = this.share.permissions + const basePermissions = this.bundledPermissions + if (permissions === basePermissions.READ_ONLY) { return this.canViewText - } else if (permissionsWithoutShare === basePermissions.ALL || permissionsWithoutShare === basePermissions.ALL_FILE) { + } else if (permissions === basePermissions.ALL || permissions === basePermissions.ALL_FILE) { return this.canEditText - } else if (permissionsWithoutShare === basePermissions.FILE_DROP) { + } else if (permissions === basePermissions.FILE_DROP) { return this.fileDropText } diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js index 40b46033500d3..ad5651ef9b76b 100644 --- a/apps/files_sharing/src/mixins/SharesMixin.js +++ b/apps/files_sharing/src/mixins/SharesMixin.js @@ -10,10 +10,7 @@ import { ShareType } from '@nextcloud/sharing' import debounce from 'debounce' import PQueue from 'p-queue' import { fetchNode } from '../../../files/src/services/WebdavClient.ts' -import { - ATOMIC_PERMISSIONS, - getBundledPermissions, -} from '../lib/SharePermissionsToolBox.js' +import { getBundledPermissions } from '../lib/SharePermissionsToolBox.js' import Share from '../models/Share.ts' import Config from '../services/ConfigService.ts' import logger from '../services/logger.ts' @@ -138,15 +135,14 @@ export default { return this.config.isDefaultInternalExpireDateEnforced }, hasCustomPermissions() { - const basePermissions = getBundledPermissions(true) + const basePermissions = getBundledPermissions(this.config.excludeReshareFromEdit) const bundledPermissions = [ basePermissions.ALL, basePermissions.ALL_FILE, basePermissions.READ_ONLY, basePermissions.FILE_DROP, ] - const permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE - return !bundledPermissions.includes(permissionsWithoutShare) + return !bundledPermissions.includes(this.share.permissions) }, maxExpirationDateEnforced() { if (this.isExpiryDateEnforced) { diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index a156bcfbf3e6f..fda6583ac9a51 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -1051,12 +1051,14 @@ export default { handleDefaultPermissions() { if (this.isNewShare) { const defaultPermissions = this.config.defaultPermissions - const permissionsWithoutShare = defaultPermissions & ~ATOMIC_PERMISSIONS.SHARE - const basePermissions = getBundledPermissions(true) - if (permissionsWithoutShare === basePermissions.READ_ONLY - || permissionsWithoutShare === basePermissions.ALL - || permissionsWithoutShare === basePermissions.ALL_FILE) { - this.sharingPermission = permissionsWithoutShare.toString() + const basePermissions = this.bundledPermissions + if (defaultPermissions === basePermissions.READ_ONLY) { + this.sharingPermission = basePermissions.READ_ONLY.toString() + } else if (defaultPermissions === basePermissions.ALL + || defaultPermissions === basePermissions.ALL_FILE) { + this.sharingPermission = this.allPermissions + } else if (defaultPermissions === basePermissions.FILE_DROP) { + this.sharingPermission = basePermissions.FILE_DROP.toString() } else { this.sharingPermission = 'custom' this.share.permissions = defaultPermissions