|
34 | 34 | <NcCheckboxRadioSwitch :button-variant="true" |
35 | 35 | data-cy-files-sharing-share-permissions-bundle="upload-edit" |
36 | 36 | :checked.sync="sharingPermission" |
37 | | - :value="bundledPermissions.ALL.toString()" |
| 37 | + :value="allPermissions" |
38 | 38 | name="sharing_permission_radio" |
39 | 39 | type="radio" |
40 | 40 | button-variant-grouped="vertical" |
@@ -370,6 +370,9 @@ export default { |
370 | 370 | } |
371 | 371 | } |
372 | 372 | }, |
| 373 | + allPermissions() { |
| 374 | + return this.isFolder ? this.bundledPermissions.ALL.toString() : this.bundledPermissions.ALL_FILE.toString() |
| 375 | + }, |
373 | 376 | /** |
374 | 377 | * Can the sharee edit the shared file ? |
375 | 378 | */ |
@@ -669,8 +672,15 @@ export default { |
669 | 672 | [ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'), |
670 | 673 | } |
671 | 674 |
|
672 | | - return [ATOMIC_PERMISSIONS.READ, ATOMIC_PERMISSIONS.CREATE, ATOMIC_PERMISSIONS.UPDATE, ATOMIC_PERMISSIONS.SHARE, ATOMIC_PERMISSIONS.DELETE] |
673 | | - .filter((permission) => hasPermissions(this.share.permissions, permission)) |
| 675 | + const permissionsList = [ |
| 676 | + ATOMIC_PERMISSIONS.READ, |
| 677 | + ...(this.isFolder ? [ATOMIC_PERMISSIONS.CREATE] : []), |
| 678 | + ATOMIC_PERMISSIONS.UPDATE, |
| 679 | + ...(this.resharingIsPossible ? [ATOMIC_PERMISSIONS.SHARE] : []), |
| 680 | + ...(this.isFolder ? [ATOMIC_PERMISSIONS.DELETE] : []), |
| 681 | + ] |
| 682 | +
|
| 683 | + return permissionsList.filter((permission) => hasPermissions(this.share.permissions, permission)) |
674 | 684 | .map((permission, index) => index === 0 |
675 | 685 | ? translatedPermissions[permission] |
676 | 686 | : translatedPermissions[permission].toLocaleLowerCase(getLanguage())) |
@@ -734,6 +744,13 @@ export default { |
734 | 744 | isReshareChecked = this.canReshare, |
735 | 745 | } = {}) { |
736 | 746 | // calc permissions if checked |
| 747 | +
|
| 748 | + if (!this.isFolder && (isCreateChecked || isDeleteChecked)) { |
| 749 | + logger.debug('Ignoring create/delete permissions for file share — only available for folders') |
| 750 | + isCreateChecked = false |
| 751 | + isDeleteChecked = false |
| 752 | + } |
| 753 | +
|
737 | 754 | const permissions = 0 |
738 | 755 | | (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0) |
739 | 756 | | (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0) |
|
0 commit comments