diff --git a/src/routes/console/project-[project]/authentication/_appleOAuth.svelte b/src/routes/console/project-[project]/authentication/_appleOAuth.svelte index 2b1dc4926..181236ece 100644 --- a/src/routes/console/project-[project]/authentication/_appleOAuth.svelte +++ b/src/routes/console/project-[project]/authentication/_appleOAuth.svelte @@ -12,23 +12,37 @@ import { addNotification } from '$lib/stores/notifications'; import { sdkForConsole } from '$lib/stores/sdk'; import type { Provider } from '$lib/stores/oauth-providers'; + import { onMount } from 'svelte'; export let showModal = false; export let provider: Provider; - let { keyID, teamID, p8 } = JSON.parse(provider.secret); + let id: string = null; + let active = false; + let keyID: string = null; + let teamID: string = null; + let p8: string = null; + + onMount(() => { + id ??= provider.id; + active ??= provider.active; + if (provider.secret) ({ keyID, teamID, p8 } = JSON.parse(provider.secret)); + }); + let error: string; const projectId = $page.params.project; const update = async () => { try { - const secret = JSON.stringify({ keyID, teamID, p8 }); await sdkForConsole.projects.updateOAuth2( projectId, provider.name.toLowerCase(), - provider.id, + id, secret ); + provider.active = active; + provider.id = id; + provider.secret = secret; showModal = false; addNotification({ type: 'success', @@ -40,9 +54,11 @@ error = message; } }; + + $: secret = keyID && teamID && p8 ? JSON.stringify({ keyID, teamID, p8 }) : provider.secret; -
+ {provider.name} OAuth2 Settings @@ -53,16 +69,13 @@ visit the docs.

- + + bind:value={id} /> @@ -79,7 +92,12 @@
- +
diff --git a/src/routes/console/project-[project]/authentication/_auth0OAuth.svelte b/src/routes/console/project-[project]/authentication/_auth0OAuth.svelte index 869907614..8a07aed3c 100644 --- a/src/routes/console/project-[project]/authentication/_auth0OAuth.svelte +++ b/src/routes/console/project-[project]/authentication/_auth0OAuth.svelte @@ -12,23 +12,35 @@ import { sdkForConsole } from '$lib/stores/sdk'; import type { Provider } from '$lib/stores/oauth-providers'; import { addNotification } from '$lib/stores/notifications'; + import { onMount } from 'svelte'; export let showModal = false; export let provider: Provider; - let { clientSecret, auth0Domain } = JSON.parse(provider.secret); + let id: string = null; + let active = false; + let clientSecret: string = null; + let auth0Domain: string = null; let error: string; + onMount(() => { + id ??= provider.id; + active ??= provider.active; + if (provider.secret) ({ clientSecret, auth0Domain } = JSON.parse(provider.secret)); + }); + const projectId = $page.params.project; const update = async () => { try { - const secret = JSON.stringify({ clientSecret, auth0Domain }); await sdkForConsole.projects.updateOAuth2( projectId, provider.name.toLowerCase(), - provider.id, + id, secret ); + provider.active = active; + provider.id = id; + provider.secret = secret; showModal = false; addNotification({ type: 'success', @@ -40,9 +52,14 @@ error = message; } }; + + $: secret = + clientSecret && auth0Domain + ? JSON.stringify({ clientSecret, auth0Domain }) + : provider.secret; -
+ {provider.name} OAuth2 Settings @@ -52,20 +69,18 @@ visit the docs.

- + + bind:value={id} /> - +
diff --git a/src/routes/console/project-[project]/authentication/_mainOAuth.svelte b/src/routes/console/project-[project]/authentication/_mainOAuth.svelte index cf0495456..5c6074b32 100644 --- a/src/routes/console/project-[project]/authentication/_mainOAuth.svelte +++ b/src/routes/console/project-[project]/authentication/_mainOAuth.svelte @@ -12,12 +12,22 @@ import { sdkForConsole } from '$lib/stores/sdk'; import type { Provider } from '$lib/stores/oauth-providers'; import { addNotification } from '$lib/stores/notifications'; + import { onMount } from 'svelte'; export let showModal = false; export let provider: Provider; const projectId = $page.params.project; + let active = false; + let id: string = null; + let secret: string = null; + + onMount(() => { + active ??= provider.active; + id ??= provider.id; + secret ??= provider.secret; + }); let error: string; const update = async () => { @@ -25,9 +35,12 @@ await sdkForConsole.projects.updateOAuth2( projectId, provider.name.toLowerCase(), - provider.id, - provider.secret + id, + secret ); + provider.active = active; + provider.id = id; + provider.secret = secret; showModal = false; addNotification({ type: 'success', @@ -41,7 +54,7 @@ }; -
+ {provider.name} OAuth2 Settings @@ -51,22 +64,20 @@ visit the docs.

- + + bind:value={id} /> + bind:value={secret} /> To complete set up, add this OAuth2 redirect URI to your {provider.name} app configuration. @@ -80,7 +91,13 @@
- +
diff --git a/src/routes/console/project-[project]/authentication/_microsoftOAuth.svelte b/src/routes/console/project-[project]/authentication/_microsoftOAuth.svelte index a954704bc..695453153 100644 --- a/src/routes/console/project-[project]/authentication/_microsoftOAuth.svelte +++ b/src/routes/console/project-[project]/authentication/_microsoftOAuth.svelte @@ -12,24 +12,36 @@ import { sdkForConsole } from '$lib/stores/sdk'; import type { Provider } from '$lib/stores/oauth-providers'; import { addNotification } from '$lib/stores/notifications'; + import { onMount } from 'svelte'; export let showModal = false; export let provider: Provider; - let { clientSecret, tenantID } = JSON.parse(provider.secret); + let id: string = null; + let active = false; + let clientSecret: string = null; + let tenantID: string = null; let error: string; + onMount(() => { + id ??= provider.id; + active ??= provider.active; + if (provider.secret) ({ clientSecret, tenantID } = JSON.parse(provider.secret)); + }); + const projectId = $page.params.project; const update = async () => { try { - const secret = JSON.stringify({ clientSecret, tenantID }); await sdkForConsole.projects.updateOAuth2( projectId, provider.name.toLowerCase(), - provider.id, + id, secret ); + provider.active = active; + provider.id = id; + provider.secret = secret; showModal = false; addNotification({ @@ -42,9 +54,12 @@ error = message; } }; + + $: secret = + clientSecret && tenantID ? JSON.stringify({ clientSecret, tenantID }) : provider.secret; -
+ {provider.name} OAuth2 Settings @@ -55,21 +70,19 @@ visit the docs.

- + + bind:value={id} /> - +
diff --git a/src/routes/console/project-[project]/authentication/_oktaOAuth.svelte b/src/routes/console/project-[project]/authentication/_oktaOAuth.svelte index 2fabc91d1..01ec179b7 100644 --- a/src/routes/console/project-[project]/authentication/_oktaOAuth.svelte +++ b/src/routes/console/project-[project]/authentication/_oktaOAuth.svelte @@ -12,24 +12,39 @@ import { sdkForConsole } from '$lib/stores/sdk'; import type { Provider } from '$lib/stores/oauth-providers'; import { addNotification } from '$lib/stores/notifications'; + import { onMount } from 'svelte'; export let showModal = false; export let provider: Provider; - let { clientSecret, oktaDomain, authorizationServerId } = JSON.parse(provider.secret); + let id: string = null; + let active = false; + let clientSecret: string = null; + let oktaDomain: string = null; + let authorizationServerId: string = null; + + onMount(() => { + id ??= provider.id; + active ??= provider.active; + if (provider.secret) + ({ clientSecret, oktaDomain, authorizationServerId } = JSON.parse(provider.secret)); + }); + let error: string; const projectId = $page.params.project; const update = async () => { try { - const secret = JSON.stringify({ clientSecret, oktaDomain, authorizationServerId }); await sdkForConsole.projects.updateOAuth2( projectId, provider.name.toLowerCase(), - provider.id, + id, secret ); + provider.active = active; + provider.id = id; + provider.secret = secret; showModal = false; addNotification({ type: 'success', @@ -41,9 +56,14 @@ error = message; } }; + + $: secret = + clientSecret && oktaDomain && authorizationServerId + ? JSON.stringify({ clientSecret, oktaDomain, authorizationServerId }) + : provider.secret; -
+ {provider.name} OAuth2 Settings @@ -53,20 +73,18 @@ visit the docs.

- + + bind:value={id} /> - +
diff --git a/src/routes/console/project-[project]/authentication/settings/+page.svelte b/src/routes/console/project-[project]/authentication/settings/+page.svelte index 1ea1a9bad..be9a2b270 100644 --- a/src/routes/console/project-[project]/authentication/settings/+page.svelte +++ b/src/routes/console/project-[project]/authentication/settings/+page.svelte @@ -70,6 +70,7 @@