aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/src')
-rw-r--r--apps/files/src/actions/downloadAction.ts14
1 files changed, 13 insertions, 1 deletions
diff --git a/apps/files/src/actions/downloadAction.ts b/apps/files/src/actions/downloadAction.ts
index 030e0e818ec..9a3ae828cb6 100644
--- a/apps/files/src/actions/downloadAction.ts
+++ b/apps/files/src/actions/downloadAction.ts
@@ -47,7 +47,19 @@ export const action = new FileAction({
iconSvgInline: () => ArrowDownSvg,
enabled(nodes: Node[]) {
- return nodes.length > 0 && nodes
+ if (nodes.length === 0) {
+ return false
+ }
+
+ // We can download direct dav files. But if we have
+ // some folders, we need to use the /apps/files/ajax/download.php
+ // endpoint, which only supports user root folder.
+ if (nodes.some(node => node.type === FileType.Folder)
+ && !nodes.every(node => node.root?.startsWith('/files'))) {
+ return false
+ }
+
+ return nodes
.map(node => node.permissions)
.every(permission => (permission & Permission.READ) !== 0)
},