diff --git a/src/routes/(protected)/+layout.server.ts b/src/routes/(protected)/+layout.server.ts index 16cb0fe..fe2d5ab 100644 --- a/src/routes/(protected)/+layout.server.ts +++ b/src/routes/(protected)/+layout.server.ts @@ -1,12 +1,10 @@ -import type { LayoutServerLoad } from "./$types"; -import { error } from "@sveltejs/kit"; -import { prisma } from "$lib/db"; - -// const authorizedRoles - Not an admin gate, therefore all authenticated roles are authorized. +import type { LayoutServerLoad } from './$types'; +import { error } 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 } }); - if (!user) { - throw error(403, "not authorized"); - } -} \ No newline at end of file + const user = await prisma.user.findUnique({ where: { id: locals.user?.id } }); + if (!user) { + throw error(403, 'not authorized'); + } +}; diff --git a/src/routes/(protected)/+layout.svelte b/src/routes/(protected)/+layout.svelte index 0d2c84a..cf0c5f7 100644 --- a/src/routes/(protected)/+layout.svelte +++ b/src/routes/(protected)/+layout.svelte @@ -1,3 +1,9 @@ + +
+
+ Dashboard
@@ -24,7 +33,10 @@
{/if}
+
+ + {@render children()} diff --git a/src/routes/account/setup/+page.server.ts b/src/routes/account/setup/+page.server.ts new file mode 100644 index 0000000..9911860 --- /dev/null +++ b/src/routes/account/setup/+page.server.ts @@ -0,0 +1,17 @@ +import type { PageServerLoad } from './$types'; +import { error } from '@sveltejs/kit'; +import { prisma } from '$lib/db'; + +// Tell the page what to do when it loads +export const load: PageServerLoad = async ({ locals }) => { + // If locals.user doesn't exist (i.e., undefined), then the user is not logged in, \ + // i.e, not authenticated nor authorized! We skip the database check early and also + // solve a problem with Prisma in case of having an undefined locals.user.id. + if (!locals.user?.id) { + throw error(403, 'not authorized'); + } + + const user = await prisma.user.findUnique({ where: { id: locals.user.id } }); + + return { user }; +}; diff --git a/src/routes/account/setup/+page.svelte b/src/routes/account/setup/+page.svelte new file mode 100644 index 0000000..52d0323 --- /dev/null +++ b/src/routes/account/setup/+page.svelte @@ -0,0 +1,12 @@ + + +
+

+ Account Setup +

+
\ No newline at end of file