From 7be389704dcdbabbbb9bec3a35bb495d78c85fc6 Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Thu, 18 Aug 2022 17:10:42 +0300 Subject: [PATCH] added hideControls setting --- core/settings.go | 2 + core/settings_test.go | 2 +- tests/data/data.db | Bin 159744 -> 159744 bytes ui/src/App.svelte | 11 ++--- .../collections/CollectionsSidebar.svelte | 15 ++++--- ui/src/components/records/PageRecords.svelte | 42 ++++++++++-------- .../settings/PageApplication.svelte | 18 +++++++- ui/src/components/users/PageUsers.svelte | 20 +++++---- ui/src/stores/app.js | 2 + 9 files changed, 72 insertions(+), 40 deletions(-) diff --git a/core/settings.go b/core/settings.go index 4beb5dd3..a6739611 100644 --- a/core/settings.go +++ b/core/settings.go @@ -43,6 +43,7 @@ func NewSettings() *Settings { Meta: MetaConfig{ AppName: "Acme", AppUrl: "http://localhost:8090", + HideControls: false, SenderName: "Support", SenderAddress: "support@example.com", VerificationTemplate: defaultVerificationTemplate, @@ -270,6 +271,7 @@ func (c S3Config) Validate() error { type MetaConfig struct { AppName string `form:"appName" json:"appName"` AppUrl string `form:"appUrl" json:"appUrl"` + HideControls bool `form:"hideControls" json:"hideControls"` SenderName string `form:"senderName" json:"senderName"` SenderAddress string `form:"senderAddress" json:"senderAddress"` VerificationTemplate EmailTemplate `form:"verificationTemplate" json:"verificationTemplate"` diff --git a/core/settings_test.go b/core/settings_test.go index ba749e0a..0d85e6d9 100644 --- a/core/settings_test.go +++ b/core/settings_test.go @@ -174,7 +174,7 @@ func TestSettingsRedactClone(t *testing.T) { t.Fatal(err) } - expected := `{"meta":{"appName":"test123","appUrl":"http://localhost:8090","senderName":"Support","senderAddress":"support@example.com","verificationTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eThank you for joining us at {APP_NAME}.\u003c/p\u003e\n\u003cp\u003eClick on the button below to verify your email address.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eVerify\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Verify your {APP_NAME} email","actionUrl":"{APP_URL}/_/#/users/confirm-verification/{TOKEN}"},"resetPasswordTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to reset your password.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eReset password\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to reset your password, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Reset your {APP_NAME} password","actionUrl":"{APP_URL}/_/#/users/confirm-password-reset/{TOKEN}"},"confirmEmailChangeTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to confirm your new email address.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eConfirm new email\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to change your email address, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Confirm your {APP_NAME} new email address","actionUrl":"{APP_URL}/_/#/users/confirm-email-change/{TOKEN}"}},"logs":{"maxDays":7},"smtp":{"enabled":false,"host":"smtp.example.com","port":587,"username":"","password":"******","tls":true},"s3":{"enabled":false,"bucket":"","region":"","endpoint":"","accessKey":"","secret":"******","forcePathStyle":false},"adminAuthToken":{"secret":"******","duration":1209600},"adminPasswordResetToken":{"secret":"******","duration":1800},"userAuthToken":{"secret":"******","duration":1209600},"userPasswordResetToken":{"secret":"******","duration":1800},"userEmailChangeToken":{"secret":"******","duration":1800},"userVerificationToken":{"secret":"******","duration":604800},"emailAuth":{"enabled":true,"exceptDomains":null,"onlyDomains":null,"minPasswordLength":8},"googleAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"facebookAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"githubAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"gitlabAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"}}` + expected := `{"meta":{"appName":"test123","appUrl":"http://localhost:8090","hideControls":false,"senderName":"Support","senderAddress":"support@example.com","verificationTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eThank you for joining us at {APP_NAME}.\u003c/p\u003e\n\u003cp\u003eClick on the button below to verify your email address.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eVerify\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Verify your {APP_NAME} email","actionUrl":"{APP_URL}/_/#/users/confirm-verification/{TOKEN}"},"resetPasswordTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to reset your password.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eReset password\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to reset your password, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Reset your {APP_NAME} password","actionUrl":"{APP_URL}/_/#/users/confirm-password-reset/{TOKEN}"},"confirmEmailChangeTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to confirm your new email address.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eConfirm new email\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to change your email address, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Confirm your {APP_NAME} new email address","actionUrl":"{APP_URL}/_/#/users/confirm-email-change/{TOKEN}"}},"logs":{"maxDays":7},"smtp":{"enabled":false,"host":"smtp.example.com","port":587,"username":"","password":"******","tls":true},"s3":{"enabled":false,"bucket":"","region":"","endpoint":"","accessKey":"","secret":"******","forcePathStyle":false},"adminAuthToken":{"secret":"******","duration":1209600},"adminPasswordResetToken":{"secret":"******","duration":1800},"userAuthToken":{"secret":"******","duration":1209600},"userPasswordResetToken":{"secret":"******","duration":1800},"userEmailChangeToken":{"secret":"******","duration":1800},"userVerificationToken":{"secret":"******","duration":604800},"emailAuth":{"enabled":true,"exceptDomains":null,"onlyDomains":null,"minPasswordLength":8},"googleAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"facebookAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"githubAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"gitlabAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"}}` if encodedStr := string(encoded); encodedStr != expected { t.Fatalf("Expected %v, got \n%v", expected, encodedStr) diff --git a/tests/data/data.db b/tests/data/data.db index 03fb1517b26c17d2301e0f77d68f695df0dba204..c51e5b9870a793f92d22c9b099ccdbd98f9cf06e 100644 GIT binary patch delta 82 zcmZp8z}WyqEsR^3*c@0UGB8fuEGW><$T25}kv&v)hw}7wj!ap?8JQ`m&iQ#IMfo|! lN>*u!ImM~l#hjS#@bXzG7#drdm{}PZ>6uzsE(>5%002*+83q6V delta 69 zcmZp8z}WyqEsR^3*c@1vF)%LMEGRICk!wykBYUXq_DXB(>38CpRHpBDWOCUq;ly-{ Ym(N7O(A3J<(8}0Y&)C#tSpbs)01TZJY5)KL diff --git a/ui/src/App.svelte b/ui/src/App.svelte index 9f8ad25c..53a88247 100644 --- a/ui/src/App.svelte +++ b/ui/src/App.svelte @@ -10,7 +10,7 @@ import Toasts from "@/components/base/Toasts.svelte"; import Toggler from "@/components/base/Toggler.svelte"; import Confirmation from "@/components/base/Confirmation.svelte"; - import { pageTitle, appName } from "@/stores/app"; + import { pageTitle, appName, hideControls } from "@/stores/app"; import { admin } from "@/stores/admin"; import { setErrors } from "@/stores/errors"; import { resetConfirmation } from "@/stores/confirmation"; @@ -20,7 +20,7 @@ let showAppSidebar = false; $: if ($admin?.id) { - loadAppName(); + loadSettings(); } function handleRouteLoading(e) { @@ -42,18 +42,19 @@ replace("/"); } - async function loadAppName() { + async function loadSettings() { if (!$admin?.id) { return; } try { const settings = await ApiClient.settings.getAll({ - $cancelKey: "loadAppName", + $cancelKey: "initialAppSettings", }); $appName = settings?.meta?.appName || ""; + $hideControls = !!settings?.meta?.hideControls; } catch (err) { - console.warn("Failed to load app name.", err); + console.warn("Failed to load app settings.", err); } } diff --git a/ui/src/components/collections/CollectionsSidebar.svelte b/ui/src/components/collections/CollectionsSidebar.svelte index 3dfa3a4a..7ccccdfc 100644 --- a/ui/src/components/collections/CollectionsSidebar.svelte +++ b/ui/src/components/collections/CollectionsSidebar.svelte @@ -1,4 +1,5 @@