diff --git a/server/handles/search.go b/server/handles/search.go index 6ca3b0a1..1168efb9 100644 --- a/server/handles/search.go +++ b/server/handles/search.go @@ -20,8 +20,17 @@ type SearchResp struct { } func Search(c *gin.Context) { - var req model.SearchReq - if err := c.ShouldBind(&req); err != nil { + var ( + req model.SearchReq + err error + ) + if err = c.ShouldBind(&req); err != nil { + common.ErrorResp(c, err, 400) + return + } + user := c.MustGet("user").(*model.User) + req.Parent, err = user.JoinPath(req.Parent) + if err != nil { common.ErrorResp(c, err, 400) return } @@ -34,8 +43,7 @@ func Search(c *gin.Context) { common.ErrorResp(c, err, 500) return } - filteredNodes := []model.SearchNode{} - user := c.MustGet("user").(*model.User) + var filteredNodes []model.SearchNode for _, node := range nodes { if !strings.HasPrefix(node.Parent, user.BasePath) { continue @@ -47,7 +55,6 @@ func Search(c *gin.Context) { if !common.CanAccess(user, meta, path.Join(node.Parent, node.Name), "") { continue } - // node.Parent = "/" + strings.Replace(node.Parent, user.BasePath, "", 1) filteredNodes = append(filteredNodes, node) } common.SuccessResp(c, common.PageResp{