From fb30aa0902478b301fdfbb21af1df58effca459b Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" Date: Mon, 18 Sep 2023 14:06:49 +0200 Subject: fix(files): allow downloading folders within user root folders only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- apps/files/src/actions/downloadAction.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'apps/files/src') 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) }, -- cgit v1.2.3