Skip to content

Commit

Permalink
Merge pull request #46280 from nextcloud/backport/46068/stable28
Browse files Browse the repository at this point in the history
[stable28] fix(ExternalSharing): Handle template shares from external sources
  • Loading branch information
Fenn-CS authored Jul 3, 2024
2 parents 5649cdd + 7f47253 commit 47c74a9
Show file tree
Hide file tree
Showing 9 changed files with 13 additions and 87 deletions.
75 changes: 0 additions & 75 deletions apps/files_sharing/src/components/SharingInput.vue
Original file line number Diff line number Diff line change
Expand Up @@ -462,81 +462,6 @@ export default {
...this.shareTypeToIcon(result.value.shareType),
}
},
/**
* Process the new share request
*
* @param {object} value the multiselect option
*/
async addShare(value) {
// Clear the displayed selection
this.value = null
if (value.lookup) {
await this.getSuggestions(this.query, true)
this.$nextTick(() => {
// open the dropdown again
this.$refs.select.$children[0].open = true
})
return true
}
// handle externalResults from OCA.Sharing.ShareSearch
if (value.handler) {
const share = await value.handler(this)
this.$emit('add:share', new Share(share))
return true
}
this.loading = true
console.debug('Adding a new share from the input for', value)
try {
let password = null
if (this.config.enforcePasswordForPublicLink
&& value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
password = await GeneratePassword()
}
const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')
const share = await this.createShare({
path,
shareType: value.shareType,
shareWith: value.shareWith,
password,
permissions: this.fileInfo.sharePermissions & getCapabilities().files_sharing.default_permissions,
attributes: JSON.stringify(this.fileInfo.shareAttributes),
})
// If we had a password, we need to show it to the user as it was generated
if (password) {
share.newPassword = password
// Wait for the newly added share
const component = await new Promise(resolve => {
this.$emit('add:share', share, resolve)
})
// open the menu on the
// freshly created share component
component.open = true
} else {
// Else we just add it normally
this.$emit('add:share', share)
}
await this.getRecommendations()
} catch (error) {
this.$nextTick(() => {
// open the dropdown again on error
this.$refs.select.$children[0].open = true
})
this.query = value.shareWith
console.error('Error while adding new share', error)
} finally {
this.loading = false
}
},
},
}
</script>
Expand Down
11 changes: 6 additions & 5 deletions apps/files_sharing/src/mixins/ShareDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ export default {
// TODO : Better name/interface for handler required
// For example `externalAppCreateShareHook` with proper documentation
if (shareRequestObject.handler) {
const handlerInput = {}
if (this.suggestions) {
shareRequestObject.suggestions = this.suggestions
shareRequestObject.fileInfo = this.fileInfo
shareRequestObject.query = this.query
handlerInput.suggestions = this.suggestions
handlerInput.fileInfo = this.fileInfo
handlerInput.query = this.query
}
share = await shareRequestObject.handler(shareRequestObject)
share = new Share(share)
const externalShareRequestObject = await shareRequestObject.handler(handlerInput)
share = this.mapShareRequestToShareObject(externalShareRequestObject)
} else {
share = this.mapShareRequestToShareObject(shareRequestObject)
}
Expand Down
3 changes: 3 additions & 0 deletions dist/4133-4133.js

Large diffs are not rendered by default.

File renamed without changes.
1 change: 1 addition & 0 deletions dist/4133-4133.js.map

Large diffs are not rendered by default.

3 changes: 0 additions & 3 deletions dist/5552-5552.js

This file was deleted.

1 change: 0 additions & 1 deletion dist/5552-5552.js.map

This file was deleted.

4 changes: 2 additions & 2 deletions dist/files_sharing-files_sharing_tab.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/files_sharing-files_sharing_tab.js.map

Large diffs are not rendered by default.

0 comments on commit 47c74a9

Please sign in to comment.