diff --git a/server/handles/search.go b/server/handles/search.go index 1168efb9..8b4d72d6 100644 --- a/server/handles/search.go +++ b/server/handles/search.go @@ -14,6 +14,11 @@ import ( "github.com/pkg/errors" ) +type SearchReq struct { + model.SearchReq + Password string `json:"password"` +} + type SearchResp struct { model.SearchNode Type int `json:"type"` @@ -21,7 +26,7 @@ type SearchResp struct { func Search(c *gin.Context) { var ( - req model.SearchReq + req SearchReq err error ) if err = c.ShouldBind(&req); err != nil { @@ -38,7 +43,7 @@ func Search(c *gin.Context) { common.ErrorResp(c, err, 400) return } - nodes, total, err := search.Search(c, req) + nodes, total, err := search.Search(c, req.SearchReq) if err != nil { common.ErrorResp(c, err, 500) return @@ -52,7 +57,7 @@ func Search(c *gin.Context) { if err != nil && !errors.Is(errors.Cause(err), errs.MetaNotFound) { continue } - if !common.CanAccess(user, meta, path.Join(node.Parent, node.Name), "") { + if !common.CanAccess(user, meta, path.Join(node.Parent, node.Name), req.Password) { continue } filteredNodes = append(filteredNodes, node)