diff --git a/app/(blobs)/(setup)/setup/page.tsx b/app/(blobs)/(setup)/setup/page.tsx index bf55c0df..1dd479e5 100644 --- a/app/(blobs)/(setup)/setup/page.tsx +++ b/app/(blobs)/(setup)/setup/page.tsx @@ -3,6 +3,7 @@ import { Suspense } from 'react'; import { getAnonymousRecruitmentStatus, getLimitInterviewsStatus, + requireAppNotConfigured, requireAppNotExpired, } from '~/queries/appSettings'; import { getServerSession } from '~/utils/auth'; @@ -33,6 +34,7 @@ export const dynamic = 'force-dynamic'; export default async function Page() { await requireAppNotExpired(true); + await requireAppNotConfigured(); const setupDataPromise = getSetupData(); diff --git a/package.json b/package.json index 54ce5d8e..436a6b72 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fresco", - "version": "1.0.1", + "version": "1.0.2", "private": true, "type": "module", "packageManager": "pnpm@9.1.1+sha256.9551e803dcb7a1839fdf5416153a844060c7bce013218ce823410532504ac10b", diff --git a/queries/appSettings.ts b/queries/appSettings.ts index 1b2e1266..b9b4c111 100644 --- a/queries/appSettings.ts +++ b/queries/appSettings.ts @@ -56,6 +56,17 @@ export async function requireAppNotExpired(isSetupRoute = false) { return; } +// Used to prevent user account creation after the app has been configured +export async function requireAppNotConfigured() { + const appSettings = await getAppSettings(); + + if (appSettings.configured) { + redirect('/'); + } + + return; +} + export async function isAppExpired() { const appSettings = await getAppSettings(); return appSettings.expired;