From 80411d923167cec5857d7503da872b89ddd866c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6sche?= Date: Mon, 12 Jan 2026 00:09:39 +0100 Subject: [PATCH] FIX: Properly detect if target path is a folder when moving files --- go_cloud/internal/http/routes.go | 34 ++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/go_cloud/internal/http/routes.go b/go_cloud/internal/http/routes.go index d714df3..ac91477 100644 --- a/go_cloud/internal/http/routes.go +++ b/go_cloud/internal/http/routes.go @@ -1319,10 +1319,21 @@ func moveOrgFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB, return } - // Determine new file name + // Determine new file name - check if target is a folder var newPath string - if strings.HasSuffix(req.TargetPath, "/") { - // Moving into a folder + var targetFile *database.File + for i := range sourceFiles { + if sourceFiles[i].Path == req.TargetPath { + targetFile = &sourceFiles[i] + break + } + } + + if targetFile != nil && targetFile.Type == "folder" { + // Target is a folder, move file into it + newPath = path.Join(req.TargetPath, sourceFile.Name) + } else if targetFile == nil && strings.HasSuffix(req.TargetPath, "/") { + // Target path doesn't exist but ends with /, treat as folder newPath = path.Join(req.TargetPath, sourceFile.Name) } else { // Moving/renaming to a specific path @@ -1514,10 +1525,21 @@ func moveUserFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB return } - // Determine new file name + // Determine new file name - check if target is a folder var newPath string - if strings.HasSuffix(req.TargetPath, "/") { - // Moving into a folder + var targetFile *database.File + for i := range sourceFiles { + if sourceFiles[i].Path == req.TargetPath { + targetFile = &sourceFiles[i] + break + } + } + + if targetFile != nil && targetFile.Type == "folder" { + // Target is a folder, move file into it + newPath = path.Join(req.TargetPath, sourceFile.Name) + } else if targetFile == nil && strings.HasSuffix(req.TargetPath, "/") { + // Target path doesn't exist but ends with /, treat as folder newPath = path.Join(req.TargetPath, sourceFile.Name) } else { // Moving/renaming to a specific path