Skip to content
Snippets Groups Projects
Commit 678c91de authored by Allen Gilliland's avatar Allen Gilliland
Browse files

Merge branch 'master' into orgless

parents 73a3e60c ac247af0
No related merge requests found
......@@ -5,9 +5,9 @@
[metabase.api.routes :as api]
[metabase.setup :as setup]))
(let [redirect-to-setup? (fn [{:keys [uri]}] ; Redirect naughty users who try to visit a page other than setup
(and (setup/token-exists?) ; if setup is not yet complete
;; Redirect naughty users who try to visit a page other than setup if setup is not yet complete
(let [redirect-to-setup? (fn [{:keys [uri]}]
(and (setup/incomplete?)
(not (re-matches #"^/setup/.*$" uri))))
index (fn [request]
(if (redirect-to-setup? request) (resp/redirect (format "/setup/init/%s" (setup/token-value)))
......
(ns metabase.setup)
(ns metabase.setup
(:require [metabase.db :as db]
[metabase.models.user :refer [User]]))
(def ^:private setup-token
(defonce ^:private setup-token
(atom nil))
(defn token-value
......@@ -8,10 +10,11 @@
[]
@setup-token)
(defn token-exists?
"Return `true` if a setup token exists."
(defn incomplete?
"Return `true` if a setup token exists and no `Users` exist in the DB."
[]
(boolean @setup-token))
(and @setup-token
(not (db/exists? User))))
(defn token-match?
"Function for checking if the supplied string matches our setup token.
......
......@@ -12,7 +12,9 @@
;; Check that we get an error response formatted the way we'd expect
(expect
{:status :failed
:error (format "Column \"CHECKINS.NAME\" not found; SQL statement:\nSELECT \"CHECKINS\".* FROM \"CHECKINS\" WHERE (\"CHECKINS\".\"NAME\" = ?) LIMIT %d" max-result-rows)}
:error (str "Column \"CHECKINS.NAME\" not found; SQL statement:\nSELECT \"CHECKINS\".\"ID\", CAST(\"DATE\" AS DATE), "
"\"CHECKINS\".\"VENUE_ID\", \"CHECKINS\".\"USER_ID\" FROM \"CHECKINS\" WHERE (\"CHECKINS\".\"NAME\" = ?) LIMIT "
max-result-rows)}
;; This will print a stacktrace. Better to reassure people that that's on purpose than to make people question whether the tests are working
(do (log/info (color/green "NOTE: The following stacktrace is expected <3"))
(driver/process-query {:database @db-id
......
......@@ -4,7 +4,8 @@
[metabase.db :refer :all]
[metabase.driver :as driver]
[metabase.driver.query-processor :refer :all]
(metabase.models [table :refer [Table]])
(metabase.models [field :refer [Field]]
[table :refer [Table]])
[metabase.test.data.datasets :as datasets :refer [*dataset*]]))
;; ## Dataset-Independent Data Fns
......@@ -706,3 +707,24 @@
:aggregation ["stddev" (id :venues :category_id)]
:breakout [(id :venues :price)]
:order_by [[["aggregation" 0] "descending"]]})
;;; ### make sure that rows where preview_display = false don't get displayed
(datasets/expect-with-all-datasets
[(set (->columns "category_id" "name" "latitude" "id" "longitude" "price"))
(set (->columns "category_id" "name" "latitude" "id" "longitude"))
(set (->columns "category_id" "name" "latitude" "id" "longitude" "price"))]
(let [get-col-names (fn [] (-> (driver/process-query {:database (db-id)
:type "query"
:query {:aggregation ["rows"]
:source_table (id :venues)
:order_by [[(id :venues :id) "ascending"]]
:limit 1}})
:data
:columns
set))]
[(get-col-names)
(do (upd Field (id :venues :price) :preview_display false)
(get-col-names))
(do (upd Field (id :venues :price) :preview_display true)
(get-col-names))]))
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