Fix directory renaming on username change (#205)

* src/dest dirs have to be lowercase
* if the src dir doesn't exist, don't rename
This commit is contained in:
Thomas Miceli 2024-01-05 22:56:04 +01:00
parent 10cf7e6e25
commit a1524af7a9

View file

@ -4,6 +4,7 @@ import (
"crypto/md5" "crypto/md5"
"fmt" "fmt"
"github.com/thomiceli/opengist/internal/config" "github.com/thomiceli/opengist/internal/config"
"github.com/thomiceli/opengist/internal/git"
"os" "os"
"path/filepath" "path/filepath"
"strconv" "strconv"
@ -162,11 +163,14 @@ func usernameProcess(ctx echo.Context) error {
return redirect(ctx, "/settings") return redirect(ctx, "/settings")
} }
err := os.Rename( sourceDir := filepath.Join(config.C.OpengistHome, git.ReposDirectory, strings.ToLower(user.Username))
filepath.Join(config.C.OpengistHome, "repos", user.Username), destinationDir := filepath.Join(config.C.OpengistHome, git.ReposDirectory, strings.ToLower(dto.Username))
filepath.Join(config.C.OpengistHome, "repos", dto.Username))
if err != nil { if _, err := os.Stat(sourceDir); !os.IsNotExist(err) {
return errorRes(500, "Cannot rename user directory", err) err := os.Rename(sourceDir, destinationDir)
if err != nil {
return errorRes(500, "Cannot rename user directory", err)
}
} }
user.Username = dto.Username user.Username = dto.Username