From e65e8be59ec266d36abf2cb3ffaa7bdc07570d3f Mon Sep 17 00:00:00 2001 From: Noah Hsu Date: Tue, 6 Dec 2022 17:28:39 +0800 Subject: [PATCH] fix(search): missed base_path of user for parent (close #2611) --- server/handles/search.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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{