From a32afca7dfa96184ef43c400a92fd3c942e9dafa Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Thu, 5 Mar 2020 12:04:51 +0800 Subject: [PATCH] fix: turn on default column filter ONLY if query variable starts with @ --- pkg/cloudcommon/db/db_dispatcher.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/cloudcommon/db/db_dispatcher.go b/pkg/cloudcommon/db/db_dispatcher.go index acfd235f9c..43b21c90f9 100644 --- a/pkg/cloudcommon/db/db_dispatcher.go +++ b/pkg/cloudcommon/db/db_dispatcher.go @@ -120,12 +120,15 @@ func listItemsQueryByColumn(manager IModelManager, q *sqlchemy.SQuery, userCred } qdata, err := query.GetMap() if err != nil { - return nil, err + return nil, errors.Wrapf(err, "query.GetMap %s", query.String()) } listF := searchFields(manager, userCred) for key := range qdata { - fn, op := parseSearchFieldkey(key) + if !strings.HasPrefix(key, "@") { + continue + } + fn, op := parseSearchFieldkey(key[1:]) if listF.Contains(fn) { colSpec := manager.TableSpec().ColumnSpec(fn) if colSpec != nil { @@ -270,13 +273,16 @@ func listItemQueryFiltersRaw(manager IModelManager, return nil, err } } + // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - // TURN OFF automatic query by column name!!!! + // TURN ON automatic filter by column name, ONLY if query key starts with @!!!! + // example: @name=abc&@city=111 // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - /*q, err = listItemsQueryByColumn(manager, q, userCred, query) + q, err = listItemsQueryByColumn(manager, q, userCred, query) if err != nil { return nil, err - }*/ + } + searches := jsonutils.GetQueryStringArray(query, "search") if len(searches) > 0 { q, err = applyListItemsSearchFilters(manager, ctx, q, userCred, searches)