aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/actions
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/src/actions')
-rw-r--r--apps/files/src/actions/downloadAction.ts20
1 files changed, 10 insertions, 10 deletions
diff --git a/apps/files/src/actions/downloadAction.ts b/apps/files/src/actions/downloadAction.ts
index c7b07d7af80..0d8bfb7dfc2 100644
--- a/apps/files/src/actions/downloadAction.ts
+++ b/apps/files/src/actions/downloadAction.ts
@@ -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({
@@ -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) {