feat: middle save

This commit is contained in:
WH64 2025-03-22 23:13:10 +09:00
parent e1d0c5bc88
commit 8389114526

View file

@ -6,71 +6,9 @@ import (
"github.com/gin-gonic/gin"
"os"
"path/filepath"
"strings"
)
func checkAuth(ctx *gin.Context) (bool, error) {
privdir := service.NewPrivDirService(nil)
dirs, err := privdir.Query()
if err != nil {
return true, nil
}
for _, dir := range dirs {
if !strings.HasPrefix(ctx.Request.URL.Path, dir.DirName) {
continue
}
auth := service.NewAuthService()
username, password, ok := ctx.Request.BasicAuth()
if !ok {
return false, nil
}
ok, err = auth.VerifyToken(username, password)
if err != nil {
return false, err
}
if !ok {
return false, nil
}
var acc *service.Account
acc, err = auth.Read(username)
if err != nil {
return false, err
}
var path *service.PrivDir
privdir = service.NewPrivDirService(acc)
path, err = privdir.Read(dir.DirName)
if err != nil {
return false, err
}
if path == dir {
return true, nil
}
return false, nil
}
return true, nil
}
func readPath(ctx *gin.Context) {
ok, err := checkAuth(ctx)
if err != nil {
ctx.Status(401)
return
}
if !ok {
ctx.Status(401)
return
}
worker := service.NewWorkerService()
path := ctx.Param("path")
@ -127,17 +65,6 @@ func readPath(ctx *gin.Context) {
}
func downloadPath(ctx *gin.Context) {
ok, err := checkAuth(ctx)
if err != nil {
ctx.Status(401)
return
}
if !ok {
ctx.Status(401)
return
}
worker := service.NewWorkerService()
path := ctx.Param("path")
data, err := worker.Read(path)