Skip to content

Commit

Permalink
Ensure share has download permissions in F2V
Browse files Browse the repository at this point in the history
Signed-off-by: Louis <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
  • Loading branch information
artonge authored and nextcloud-command committed Nov 24, 2023
1 parent f56866c commit 78e75bf
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
20 changes: 10 additions & 10 deletions apps/files/src/actions/downloadAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,20 @@ const downloadNodes = function(dir: string, nodes: Node[]) {
triggerDownload(url)
}

// If the mount type is a share, ensure it got download permissions.
const isDownloadable = function(node: Node) {
if (node.attributes['mount-type'] !== 'shared') {
return true
if ((node.permissions & Permission.READ) === 0) {
return false
}

const downloadAttribute = JSON.parse(node.attributes['share-attributes']).find(attribute => attribute.scope === 'permissions' && attribute.key === 'download')

if (downloadAttribute === undefined) {
return true
// If the mount type is a share, ensure it got download permissions.
if (node.attributes['mount-type'] === 'shared') {
const downloadAttribute = JSON.parse(node.attributes['share-attributes']).find((attribute: { scope: string; key: string }) => attribute.scope === 'permissions' && attribute.key === 'download')
if (downloadAttribute !== undefined && downloadAttribute.enabled === false) {
return false
}
}

return downloadAttribute.enable
return true
}

export const action = new FileAction({
Expand All @@ -74,8 +75,7 @@ export const action = new FileAction({
return false
}

return nodes
.every(node => ((node.permissions & Permission.READ) !== 0) && isDownloadable(node))
return nodes.every(isDownloadable)
},

async exec(node: Node, view: View, dir: string) {
Expand Down
4 changes: 2 additions & 2 deletions dist/files-init.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/files-init.js.map

Large diffs are not rendered by default.

0 comments on commit 78e75bf

Please sign in to comment.