Skip to content
Snippets Groups Projects
Unverified Commit 7db83051 authored by bryan's avatar bryan Committed by GitHub
Browse files

Fix search input surfacing views powering audit-db (#37929)

* Filter out audit tables in search results

* add test
parent 0b03d12d
No related branches found
No related tags found
No related merge requests found
......@@ -14,6 +14,7 @@
[clojure.string :as str]
[honey.sql.helpers :as sql.helpers]
[metabase.driver.common.parameters.dates :as params.dates]
[metabase.models.permissions :as perms]
[metabase.public-settings.premium-features :as premium-features]
[metabase.search.config :as search.config :refer [SearchableModel SearchContext]]
[metabase.search.util :as search.util]
......@@ -278,7 +279,7 @@
(true? search-native-query) (set/intersection (:search-native-query feature->supported-models))
(true? verified) (set/intersection (:verified feature->supported-models)))))
(mu/defn build-filters :- map?
(mu/defn build-filters :- :map
"Build the search filters for a model."
[honeysql-query :- :map
model :- SearchableModel
......@@ -312,4 +313,8 @@
(#(build-optional-filter-query :last-edited-by model % last-edited-by))
(some? verified)
(#(build-optional-filter-query :verified model % verified)))))
(#(build-optional-filter-query :verified model % verified))
(= "table" model)
(sql.helpers/where
[:not [:= (search.config/column-with-model-alias "table" :db_id) perms/audit-db-id]]))))
(ns ^:mb/once metabase.search.filter-test
(:require
[clojure.test :refer :all]
[metabase.models.permissions :as perms]
[metabase.public-settings.premium-features :as premium-features]
[metabase.search.config :as search.config]
[metabase.search.filter :as search.filter]
......@@ -130,10 +131,19 @@
(:where (search.filter/build-filters
base-search-query "card" default-search-ctx))))
(is (= [:and [:= :table.active true] [:= :table.visibility_type nil]]
(is (= [:and
[:= :table.active true]
[:= :table.visibility_type nil]
[:not [:= :table.db_id perms/audit-db-id]]]
(:where (search.filter/build-filters
base-search-query "table" default-search-ctx))))))
(deftest ^:parallel build-table-filter-always-ignores-audit-tables
(is (contains?
(set (:where (search.filter/build-filters
base-search-query "table" default-search-ctx)))
[:not [:= :table.db_id perms/audit-db-id]])))
(deftest ^:parallel build-filter-with-search-string-test
(testing "with search string"
(is (= [:and
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment