From 8a5cf4afc3b822ede4f91fbe700c4bfc6d4c1775 Mon Sep 17 00:00:00 2001 From: Joshua May Date: Sun, 17 Dec 2023 02:05:15 +0100 Subject: [PATCH] feat: Add Kanidm SSO support (#2871) --- .../lib/components/InstanceSettings.svelte | 6 +- .../src/lib/components/KanidmSetting.svelte | 73 ++++ .../lib/components/icons/KanidmIcon.svelte | 365 ++++++++++++++++++ frontend/src/lib/components/icons/index.ts | 11 +- 4 files changed, 449 insertions(+), 6 deletions(-) create mode 100644 frontend/src/lib/components/KanidmSetting.svelte create mode 100644 frontend/src/lib/components/icons/KanidmIcon.svelte diff --git a/frontend/src/lib/components/InstanceSettings.svelte b/frontend/src/lib/components/InstanceSettings.svelte index 52d2df2e03..5c6334baad 100644 --- a/frontend/src/lib/components/InstanceSettings.svelte +++ b/frontend/src/lib/components/InstanceSettings.svelte @@ -20,6 +20,7 @@ import CustomSso from './CustomSso.svelte' import AuthentikSetting from '$lib/components/AuthentikSetting.svelte' import AutheliaSetting from '$lib/components/AutheliaSetting.svelte' + import KanidmSetting from '$lib/components/KanidmSetting.svelte' export let tab: string = 'Core' export let hideTabs: boolean = false @@ -222,8 +223,9 @@ + {#each Object.keys(oauths) as k} - {#if !['authelia', 'authentik', 'google', 'microsoft', 'github', 'gitlab', 'jumpcloud', 'okta', 'keycloak', 'slack'].includes(k) && 'login_config' in oauths[k]} + {#if !['authelia', 'authentik', 'google', 'microsoft', 'github', 'gitlab', 'jumpcloud', 'okta', 'keycloak', 'slack', 'kanidm'].includes(k) && 'login_config' in oauths[k]} {#if oauths[k]}
@@ -288,7 +290,7 @@
{#each Object.keys(oauths) as k} - {#if !['authelia', 'authentik', 'google', 'microsoft', 'github', 'gitlab', 'jumpcloud', 'okta', 'keycloak', 'slack'].includes(k) && !('login_config' in oauths[k])} + {#if !['authelia', 'authentik', 'google', 'microsoft', 'github', 'gitlab', 'jumpcloud', 'okta', 'keycloak', 'slack', 'kanidm'].includes(k) && !('login_config' in oauths[k])} {#if oauths[k]}
diff --git a/frontend/src/lib/components/KanidmSetting.svelte b/frontend/src/lib/components/KanidmSetting.svelte new file mode 100644 index 0000000000..562a987ec4 --- /dev/null +++ b/frontend/src/lib/components/KanidmSetting.svelte @@ -0,0 +1,73 @@ + + +
+ + {#if enabled} +
+ + + +
+ {/if} +
diff --git a/frontend/src/lib/components/icons/KanidmIcon.svelte b/frontend/src/lib/components/icons/KanidmIcon.svelte new file mode 100644 index 0000000000..18f0e7bddf --- /dev/null +++ b/frontend/src/lib/components/icons/KanidmIcon.svelte @@ -0,0 +1,365 @@ + + +PASSPORTAUTHSTRALIAKANIDM diff --git a/frontend/src/lib/components/icons/index.ts b/frontend/src/lib/components/icons/index.ts index d36451f9b0..1d5cde77ab 100644 --- a/frontend/src/lib/components/icons/index.ts +++ b/frontend/src/lib/components/icons/index.ts @@ -66,8 +66,9 @@ import NocoDbIcon from './NocoDbIcon.svelte' import AzureIcon from './AzureIcon.svelte' import OktaIcon from './OktaIcon.svelte' import MsSqlServerIcon from './MSSqlServerIcon.svelte' -import AuthentikIcon from './AuthentikIcon.svelte'; -import AutheliaIcon from './AutheliaIcon.svelte'; +import AuthentikIcon from './AuthentikIcon.svelte' +import AutheliaIcon from './AutheliaIcon.svelte' +import KanidmIcon from './KanidmIcon.svelte' export const APP_TO_ICON_COMPONENT = { postgresql: PostgresIcon, @@ -142,7 +143,8 @@ export const APP_TO_ICON_COMPONENT = { azure: AzureIcon, okta: OktaIcon, authentik: AuthentikIcon, - authelia: AutheliaIcon + authelia: AutheliaIcon, + kanidm: KanidmIcon } as const export { @@ -210,5 +212,6 @@ export { MicrosoftIcon, OktaIcon, AuthentikIcon, - AutheliaIcon + AutheliaIcon, + KanidmIcon }