diff --git a/apps/web/pages/auth/sso/direct.tsx b/apps/web/pages/auth/sso/direct.tsx new file mode 100644 index 0000000000..23b0a66be4 --- /dev/null +++ b/apps/web/pages/auth/sso/direct.tsx @@ -0,0 +1,38 @@ +import { signIn } from "next-auth/react"; +import { useRouter } from "next/router"; + +import { samlProductID, samlTenantID } from "@calcom/features/ee/sso/lib/saml"; +import { HOSTED_CAL_FEATURES } from "@calcom/lib/constants"; + +import type { inferSSRProps } from "@lib/types/inferSSRProps"; + +// This page is used to initiate the SAML authentication flow by redirecting to the SAML provider. +// Accessible only on self-hosted Cal.com instances. +export default function Page({ samlTenantID, samlProductID }: inferSSRProps) { + const router = useRouter(); + + if (HOSTED_CAL_FEATURES) { + router.push("/auth/login"); + return; + } + + // Initiate SAML authentication flow + signIn( + "saml", + { + callbackUrl: "/", + }, + { tenant: samlTenantID, product: samlProductID } + ); + + return null; +} + +export async function getServerSideProps() { + return { + props: { + samlTenantID, + samlProductID, + }, + }; +}