From 5f5d62a285b0138e9fb5b19f845b52afd19f268e Mon Sep 17 00:00:00 2001
From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com>
Date: Tue, 12 Mar 2024 14:27:51 +0100
Subject: [PATCH] Fix: Selecting SAML enforced organization
---
.../src/pages/login/select-organization.tsx | 46 ++++++++++---------
1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/frontend/src/pages/login/select-organization.tsx b/frontend/src/pages/login/select-organization.tsx
index d60a06fd3..464cc24a0 100644
--- a/frontend/src/pages/login/select-organization.tsx
+++ b/frontend/src/pages/login/select-organization.tsx
@@ -12,6 +12,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { Button, Spinner } from "@app/components/v2";
import { useUser } from "@app/context";
import { useGetOrganizations, useLogoutUser, useSelectOrganization } from "@app/hooks/api";
+import { Organization } from "@app/hooks/api/types";
import { isLoggedIn } from "@app/reactQuery";
import { navigateUserToOrg } from "@app/views/Login/Login.utils";
@@ -44,14 +45,20 @@ export default function LoginPage() {
}, [logout, router]);
const handleSelectOrganization = useCallback(
- async (orgId: string) => {
- console.log("Selected organization: ", orgId);
+ async (organization: Organization) => {
+ if (organization.authEnforced) {
+ // org has an org-level auth method enabled (e.g. SAML)
+ // -> logout + redirect to SAML SSO
- const { token } = await selectOrg.mutateAsync({ organizationId: orgId });
+ await logout.mutateAsync();
+ window.open(`/api/v1/sso/redirect/saml2/organizations/${organization.slug}`);
+ window.close();
+ return;
+ }
- console.log("Organization selected successfully", { token });
+ await selectOrg.mutateAsync({ organizationId: organization.id });
- navigateUserToOrg(router, orgId);
+ navigateUserToOrg(router, organization.id);
},
[selectOrg]
);
@@ -106,23 +113,20 @@ export default function LoginPage() {
{organizations.isLoading ? (
{org.name}
+ organizations.data?.map((org) => ( +{org.name}
-