From 8d9664b49a4a7c25d16bb1b71bd584145c1e18d9 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 7 Apr 2021 22:10:53 +0200 Subject: [PATCH 1/3] Prepend share paths with the home folder --- .../web-app-files/src/helpers/resources.js | 22 ++++++++++++++----- .../web-app-files/src/views/SharedViaLink.vue | 5 +++-- .../web-app-files/src/views/SharedWithMe.vue | 8 ++++--- .../src/views/SharedWithOthers.vue | 5 +++-- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/web-app-files/src/helpers/resources.js b/packages/web-app-files/src/helpers/resources.js index f989c87f89e..a7764253cd7 100644 --- a/packages/web-app-files/src/helpers/resources.js +++ b/packages/web-app-files/src/helpers/resources.js @@ -8,6 +8,7 @@ import { bitmaskToRole, checkPermission, permissionsBitmask } from './collaborat import { shareTypes, userShareTypes } from './shareTypes' import { $gettext } from '../gettext' import { getAvatarSrc } from './user' +import { join } from 'lodash-es' // Should we move this to ODS? export function getFileIcon(extension) { @@ -103,13 +104,15 @@ export function attachIndicators(resource, sharesTree) { * @param {Boolean} allowSharePerm Asserts whether the reshare permission is available * @param {String} server The url of the backend * @param {String} token The access token of the authenticated user + * @param {String} homeFolder The homeFolder path of the authenticated user */ export async function aggregateResourceShares( shares, incomingShares = false, allowSharePerm, server, - token + token, + homeFolder ) { if (incomingShares) { return Promise.all( @@ -117,7 +120,14 @@ export async function aggregateResourceShares( .orderBy(['file_target', 'permissions'], ['asc', 'desc']) .map( async share => - await buildSharedResource(share, incomingShares, allowSharePerm, server, token) + await buildSharedResource( + share, + incomingShares, + allowSharePerm, + server, + token, + homeFolder + ) ) ) } @@ -167,7 +177,8 @@ export async function aggregateResourceShares( return Promise.all( resources.map( - async share => await buildSharedResource(share, incomingShares, allowSharePerm, server, token) + async share => + await buildSharedResource(share, incomingShares, allowSharePerm, server, token, homeFolder) ) ) } @@ -177,7 +188,8 @@ export async function buildSharedResource( incomingShares = false, allowSharePerm, server, - token + token, + homeFolder ) { const resource = { id: share.item_source, @@ -207,9 +219,9 @@ export async function buildSharedResource( resource.shareOwnerDisplayname = share.displayname_owner resource.name = path.basename(share.path) resource.path = share.path - // permissions irrelevant here resource.isReceivedShare = () => false } + resource.path = path.join(homeFolder, resource.path) resource.extension = isFolder ? '' : _getFileExtension(resource.name) // FIXME: add actual permission parsing resource.canUpload = () => true diff --git a/packages/web-app-files/src/views/SharedViaLink.vue b/packages/web-app-files/src/views/SharedViaLink.vue index d124f4b26ac..b791d7954cb 100644 --- a/packages/web-app-files/src/views/SharedViaLink.vue +++ b/packages/web-app-files/src/views/SharedViaLink.vue @@ -77,7 +77,7 @@ export default { 'inProgress', 'activeFilesCount' ]), - ...mapGetters(['isOcis', 'configuration', 'getToken', 'user']), + ...mapGetters(['isOcis', 'configuration', 'getToken', 'user', 'homeFolder']), selected: { get() { @@ -156,7 +156,8 @@ export default { false, !this.isOcis, this.configuration.server, - this.getToken + this.getToken, + this.homeFolder ) this.LOAD_FILES({ currentFolder: rootFolder, files: resources }) diff --git a/packages/web-app-files/src/views/SharedWithMe.vue b/packages/web-app-files/src/views/SharedWithMe.vue index 8da11e88851..ac31febfab3 100644 --- a/packages/web-app-files/src/views/SharedWithMe.vue +++ b/packages/web-app-files/src/views/SharedWithMe.vue @@ -105,7 +105,7 @@ export default { 'inProgress', 'activeFilesCount' ]), - ...mapGetters(['isOcis', 'configuration', 'getToken', 'user']), + ...mapGetters(['isOcis', 'configuration', 'getToken', 'user', 'homeFolder']), selected: { get() { @@ -190,7 +190,8 @@ export default { true, !this.isOcis, this.configuration.server, - this.getToken + this.getToken, + this.homeFolder ) this.LOAD_FILES({ currentFolder: rootFolder, files: resources }) @@ -238,7 +239,8 @@ export default { true, !this.isOcis, this.configuration.server, - this.getToken + this.getToken, + this.homeFolder ) this.UPDATE_RESOURCE(sharedResource) } diff --git a/packages/web-app-files/src/views/SharedWithOthers.vue b/packages/web-app-files/src/views/SharedWithOthers.vue index d41a8b6f580..0205d50a20a 100644 --- a/packages/web-app-files/src/views/SharedWithOthers.vue +++ b/packages/web-app-files/src/views/SharedWithOthers.vue @@ -79,7 +79,7 @@ export default { 'inProgress', 'activeFilesCount' ]), - ...mapGetters(['isOcis', 'configuration', 'getToken', 'user']), + ...mapGetters(['isOcis', 'configuration', 'getToken', 'user', 'homeFolder']), selected: { get() { @@ -158,7 +158,8 @@ export default { false, !this.isOcis, this.configuration.server, - this.getToken + this.getToken, + this.homeFolder ) this.LOAD_FILES({ currentFolder: rootFolder, files: resources }) From 115c22187550f894ff9516fc50d4497e81f86725 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 7 Apr 2021 22:13:41 +0200 Subject: [PATCH 2/3] Add changelog --- changelog/unreleased/bugfix-home-folder-in-shares | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/unreleased/bugfix-home-folder-in-shares diff --git a/changelog/unreleased/bugfix-home-folder-in-shares b/changelog/unreleased/bugfix-home-folder-in-shares new file mode 100644 index 00000000000..514e258fe25 --- /dev/null +++ b/changelog/unreleased/bugfix-home-folder-in-shares @@ -0,0 +1,5 @@ +Bugfix: homeFolder in share paths + +We had a bug in building resources from shares as we didn't prefix the share paths with the homeFolder path. + +https://github.com/owncloud/web/issues/4823 From 7581261cf62e981229ec2f9d40c680101d4b4f7f Mon Sep 17 00:00:00 2001 From: Pascal Wengerter Date: Thu, 8 Apr 2021 10:28:47 +0100 Subject: [PATCH 3/3] Remove lodash import to make linter happy & add PR to changelog --- changelog/unreleased/bugfix-home-folder-in-shares | 1 + packages/web-app-files/src/helpers/resources.js | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/unreleased/bugfix-home-folder-in-shares b/changelog/unreleased/bugfix-home-folder-in-shares index 514e258fe25..c8f7c12dacb 100644 --- a/changelog/unreleased/bugfix-home-folder-in-shares +++ b/changelog/unreleased/bugfix-home-folder-in-shares @@ -3,3 +3,4 @@ Bugfix: homeFolder in share paths We had a bug in building resources from shares as we didn't prefix the share paths with the homeFolder path. https://github.com/owncloud/web/issues/4823 +https://github.com/owncloud/web/pulls/4926 diff --git a/packages/web-app-files/src/helpers/resources.js b/packages/web-app-files/src/helpers/resources.js index a7764253cd7..e19aa0efd4e 100644 --- a/packages/web-app-files/src/helpers/resources.js +++ b/packages/web-app-files/src/helpers/resources.js @@ -8,7 +8,6 @@ import { bitmaskToRole, checkPermission, permissionsBitmask } from './collaborat import { shareTypes, userShareTypes } from './shareTypes' import { $gettext } from '../gettext' import { getAvatarSrc } from './user' -import { join } from 'lodash-es' // Should we move this to ODS? export function getFileIcon(extension) {