From dc95a3902700a62299fd4d01e9b7f8ad307a6b1d Mon Sep 17 00:00:00 2001 From: feedmeapples Date: Wed, 15 Dec 2021 21:09:37 -0500 Subject: [PATCH] Add server settings with auth state --- src/global.d.ts | 6 ++++++ src/lib/services/settings-service.ts | 14 ++++++++++++++ src/lib/stores/settings.ts | 16 ++++++++++++++++ src/routes/_header.svelte | 19 +++++++++++-------- 4 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 src/lib/services/settings-service.ts create mode 100644 src/lib/stores/settings.ts diff --git a/src/global.d.ts b/src/global.d.ts index 3fe725cca7..db50734738 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -81,3 +81,9 @@ type FilterParameters = { status?: WorkflowStatus; timeRange?: Duration | string; }; + +type Settings = { + auth: { + enabled: boolean; + }; +}; diff --git a/src/lib/services/settings-service.ts b/src/lib/services/settings-service.ts new file mode 100644 index 0000000000..96d075b435 --- /dev/null +++ b/src/lib/services/settings-service.ts @@ -0,0 +1,14 @@ +import { requestFromAPI } from '$lib/utilities/request-from-api'; + +export const fetchSettings = async (request = fetch): Promise => { + const settings: { Auth: { Enabled: boolean } } = await requestFromAPI( + `/settings`, + { request }, + ); + + return { + auth: { + enabled: settings.Auth.Enabled, + }, + }; +}; diff --git a/src/lib/stores/settings.ts b/src/lib/stores/settings.ts new file mode 100644 index 0000000000..6cecbd17b7 --- /dev/null +++ b/src/lib/stores/settings.ts @@ -0,0 +1,16 @@ +import { writable } from 'svelte/store'; + +import { fetchSettings } from '$lib/services/settings-service'; + +export const settings = writable({ + auth: { + enabled: false, + }, +}); + +const loadSettings = async (): Promise => { + const settingsRes = await fetchSettings(); + settings.set(settingsRes); +}; + +loadSettings(); diff --git a/src/routes/_header.svelte b/src/routes/_header.svelte index 275aa55932..db83d954da 100644 --- a/src/routes/_header.svelte +++ b/src/routes/_header.svelte @@ -16,6 +16,7 @@ @@ -47,14 +48,16 @@ > Report Bug/Give Feedback - {#if user.email} - - {user.email} - - {:else} - - Sign In - + {#if $settings.auth?.enabled} + {#if user.email} + + {user.email} + + {:else} + + Sign In + + {/if} {/if}