From 900392797317a45cf1da8efefaee6e7f22ceb685 Mon Sep 17 00:00:00 2001
From: bryan <bryan.maass@gmail.com>
Date: Mon, 1 Jul 2024 12:18:11 -0600
Subject: [PATCH] Adds a property to a defsetting (#44990)

* mark a defsetting as being :sensitive?

* add test
---
 src/metabase/public_settings/premium_features.clj |  1 +
 test/metabase/api/session_test.clj                | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/src/metabase/public_settings/premium_features.clj b/src/metabase/public_settings/premium_features.clj
index 647db27d352..1d47dd0f6c3 100644
--- a/src/metabase/public_settings/premium_features.clj
+++ b/src/metabase/public_settings/premium_features.clj
@@ -262,6 +262,7 @@
 (defsetting premium-embedding-token     ; TODO - rename this to premium-features-token?
   (deferred-tru "Token for premium features. Go to the MetaStore to get yours!")
   :audit :never
+  :sensitive? true
   :setter
   (fn [new-value]
     ;; validate the new value if we're not unsetting it
diff --git a/test/metabase/api/session_test.clj b/test/metabase/api/session_test.clj
index af87bf6ff91..2bf18a01715 100644
--- a/test/metabase/api/session_test.clj
+++ b/test/metabase/api/session_test.clj
@@ -469,6 +469,18 @@
                (-> (mt/client :get 200 "session/properties" {:request-options {:headers {"x-metabase-locale" "es"}}})
                    :engines :h2 :details-fields first :display-name)))))))
 
+(deftest properties-skip-sensitive-test
+  (reset-throttlers!)
+  (testing "GET /session/properties"
+    (testing "don't return the token for admins"
+      (is (= nil
+             (-> (mt/client :get 200 "session/properties" (mt/user->credentials :crowberto))
+                 keys #{:premium-embedding-token}))))
+    (testing "don't return the token for non-admins"
+      (is (= nil
+             (-> (mt/client :get 200 "session/properties" (mt/user->credentials :rasta))
+                 keys #{:premium-embedding-token}))))))
+
 ;;; ------------------------------------------- TESTS FOR GOOGLE SIGN-IN ---------------------------------------------
 
 (deftest google-auth-test
-- 
GitLab