From 152ebb3a203f5b0817c41c1ca67352b598a3535e Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Mon, 29 Sep 2025 21:00:38 +0200 Subject: [PATCH] implemented delivery of user files --- .../srsoftware/umbrella/files/FileModule.java | 22 +++++++++++++++++-- frontend/src/App.svelte | 6 +++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java b/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java index c7d0a2c..2dfd51c 100644 --- a/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java +++ b/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java @@ -131,7 +131,25 @@ public class FileModule extends BaseHandler implements FileService { return map; } - private boolean getUserFiles(Path path, HttpExchange ex, UmbrellaUser user) { - return false; + private boolean getUserFiles(Path path, HttpExchange ex, UmbrellaUser user) throws IOException { + var userId = path.pop(); + if (userId == null) throw missingFieldException(USER_ID); + long uid; + try { + uid = Long.parseLong(userId); + } catch (NumberFormatException e) { + throw invalidFieldException(PROJECT_ID,"Long"); + } + var filename = "/user/"+uid; + if (!path.empty()) filename += "/"+URLDecoder.decode(path.toString(),UTF_8); + if (uid != user.id() && !fileDb.isPermitted(user,filename)) throw forbidden("You are not allowed to access {0}",filename); + var file = new File(baseDir+filename); + if (!file.exists()) throw unprocessable("{0} does not exist!",filename); + if (file.isDirectory()){ + Map map = getDirectory(file); + map.put("title",filename); + return sendContent(ex,map); + } + return getFile(ex, file); } } diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 7d7695b..79894e5 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -116,6 +116,12 @@ {:else} + {#if messages.error} + {@html messages.error} + {/if} + {#if messages.warning} + {@html messages.warning} + {/if}