From 82de351c0380202469e573632fa8d8c4ddfc94d1 Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Tue, 19 Mar 2024 20:09:25 -0700 Subject: [PATCH] Adding flash message on role add and remove. Protecting routes with flash messages. --- .../(app)/(protected)/admin/+layout.server.ts | 10 ++--- .../(app)/(protected)/admin/+layout.svelte | 40 +++++++++++++++++++ .../admin/users/[id]/+page.server.ts | 24 ++++++----- .../(protected)/admin/users/[id]/+page.svelte | 9 +---- src/routes/+layout.svelte | 1 - 5 files changed, 60 insertions(+), 24 deletions(-) diff --git a/src/routes/(app)/(protected)/admin/+layout.server.ts b/src/routes/(app)/(protected)/admin/+layout.server.ts index 791af38..25f1d7f 100644 --- a/src/routes/(app)/(protected)/admin/+layout.server.ts +++ b/src/routes/(app)/(protected)/admin/+layout.server.ts @@ -1,10 +1,10 @@ -import { redirect } from 'sveltekit-flash-message/server'; -import { notSignedInMessage } from '$lib/flashMessages'; +import { redirect, loadFlash } from 'sveltekit-flash-message/server'; +import { forbiddenMessage, notSignedInMessage } from '$lib/flashMessages'; import { eq } from 'drizzle-orm'; import db from '$lib/drizzle'; import { user_roles } from '../../../../schema'; -export async function load(event) { +export const load = loadFlash(async (event) => { const { locals } = event; if (!locals?.user) { redirect(302, '/login', notSignedInMessage, event); @@ -25,8 +25,8 @@ export async function load(event) { const containsAdminRole = userRoles.some((user_role) => user_role?.role?.name === 'admin'); if (!userRoles?.length || !containsAdminRole) { console.log('Not an admin'); - redirect(302, '/login', notSignedInMessage, event); + redirect(302, '/', forbiddenMessage, event); } return {}; -} +}); diff --git a/src/routes/(app)/(protected)/admin/+layout.svelte b/src/routes/(app)/(protected)/admin/+layout.svelte index c179b76..ae46cbe 100644 --- a/src/routes/(app)/(protected)/admin/+layout.svelte +++ b/src/routes/(app)/(protected)/admin/+layout.svelte @@ -1,7 +1,47 @@ + +

Do the admin stuff

+ +