From b8d1ba11e7a670c5ad7b703a1a76f4f209f3fc14 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Tue, 24 Feb 2026 08:17:37 -0600 Subject: [PATCH] Update all routes to redirect users to create a profile if one does not exist --- src/routes/(protected)/+layout.server.ts | 7 +++++-- .../(protected)/account/+page.server.ts | 19 +++++-------------- src/routes/login/+page.svelte | 4 ++-- src/routes/register/+page.server.ts | 4 ++-- src/routes/register/+page.svelte | 2 +- 5 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/routes/(protected)/+layout.server.ts b/src/routes/(protected)/+layout.server.ts index f8583ea..8a0b4b4 100644 --- a/src/routes/(protected)/+layout.server.ts +++ b/src/routes/(protected)/+layout.server.ts @@ -1,15 +1,18 @@ import type { LayoutServerLoad } from './$types'; -import { error } from '@sveltejs/kit'; +import { error, redirect } from '@sveltejs/kit'; import { prisma } from '$lib/db'; export const load: LayoutServerLoad = async ({ locals }) => { const user = await prisma.user.findUnique({ where: { id: locals.user?.id }, - select: { id: true, roleId: true } + select: { id: true, roleId: true, profile: { select: { id: true } } } }); if (!user) { throw error(403, 'not authorized'); } + if (!user.profile) { + throw redirect(303, '/account/setup'); + } return { userRoleId: user.roleId }; }; diff --git a/src/routes/(protected)/account/+page.server.ts b/src/routes/(protected)/account/+page.server.ts index 2027c91..8b35d0a 100644 --- a/src/routes/(protected)/account/+page.server.ts +++ b/src/routes/(protected)/account/+page.server.ts @@ -1,23 +1,14 @@ import type { PageServerLoad } from './$types'; import { prisma } from '$lib/db'; -import { error, redirect } from '@sveltejs/kit'; +import { error } from '@sveltejs/kit'; export const load: PageServerLoad = async ({ locals }) => { const user = await prisma.user.findUnique({ - where: { - id: locals.user?.id - }, - include: { - profile: true - } + where: { id: locals.user?.id }, + include: { profile: true } }); - - if (user) { - if (!user?.profile) { - throw redirect(403, '/account/setup'); - } - return { user }; - } else { + if (!user) { throw error(403, 'not authorized'); } + return { user }; }; diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte index eef059e..0c3e5d4 100644 --- a/src/routes/login/+page.svelte +++ b/src/routes/login/+page.svelte @@ -18,7 +18,7 @@ return; } - window.location.href = '/'; + window.location.href = '/account'; } @@ -41,7 +41,7 @@