From a5f26def08e100bf74e90d09298ad81e9224e249 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sun, 21 Apr 2019 18:34:48 +0200 Subject: Added download button Co-authored-by: LarsVomMars --- src/main/kotlin/App.kt | 3 --- src/main/kotlin/FileController.kt | 9 ++++----- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'src/main/kotlin') diff --git a/src/main/kotlin/App.kt b/src/main/kotlin/App.kt index ebdb560..8fb289c 100644 --- a/src/main/kotlin/App.kt +++ b/src/main/kotlin/App.kt @@ -45,7 +45,6 @@ fun main() { /** * Main page - * TODO: Create landing page */ get( "/", @@ -97,13 +96,11 @@ fun main() { /** * Renders the file list view - * TODO: Fix possible security issue with "../" */ get("/files/*", fileController::crawl, roles(Roles.USER)) /** * Receives and saves multipart media data - * TODO: Fix possible security issue with "../" */ post("/upload/*", fileController::upload, roles(Roles.USER)) diff --git a/src/main/kotlin/FileController.kt b/src/main/kotlin/FileController.kt index b7ff9d7..40ca1c9 100644 --- a/src/main/kotlin/FileController.kt +++ b/src/main/kotlin/FileController.kt @@ -22,6 +22,7 @@ class FileController { val firstParam = ctx.splat(0) ?: "" File(usersFileHome).mkdirs() when { + ctx.queryParam("raw") != null -> ctx.result(FileInputStream(File("$usersFileHome/$firstParam"))) File("$usersFileHome/$firstParam").isDirectory -> { val files = ArrayList>() Files.list(Paths.get("$usersFileHome/$firstParam/")).forEach { @@ -46,10 +47,8 @@ class FileController { files.sortWith(compareBy { it.first() }) ctx.render( "files.rocker.html", TemplateUtil.model( - "files", - files, - "path", - (if (firstParam.firstOrNull() == '/') firstParam.drop(1) else firstParam) + "files", files, + "path", (if (firstParam.firstOrNull() == '/') firstParam.drop(1) else firstParam) ) ) } @@ -227,7 +226,7 @@ class FileController { "files.rocker.html", TemplateUtil.model( "files", files, "path", - (if (sharedFileData.fileLocation.firstOrNull() != '/') "/${sharedFileData.fileLocation}" else sharedFileData.fileLocation) + (if (sharedFileData.fileLocation.firstOrNull() == '/') sharedFileData.fileLocation.drop(1) else sharedFileData.fileLocation) ) ) } -- cgit v1.2.3