29 lines
753 B
TypeScript
29 lines
753 B
TypeScript
import { authenticateUser } from '$lib/server/auth';
|
|
import type { Handle } from '@sveltejs/kit';
|
|
import { redirect } from '@sveltejs/kit';
|
|
|
|
export const handle: Handle = async ({ event, resolve }) => {
|
|
if (event.url.pathname.startsWith('/gameroom')) {
|
|
const current_user = await authenticateUser(event);
|
|
if (!current_user) {
|
|
throw redirect(302, '/login');
|
|
}
|
|
event.locals.user = current_user;
|
|
|
|
|
|
}
|
|
|
|
if (event.url.pathname.startsWith('/admin')) {
|
|
const current_user = await authenticateUser(event);
|
|
if (!current_user) {
|
|
throw redirect(302, '/login');
|
|
}
|
|
if (!current_user.is_admin) {
|
|
throw redirect(302, '/');
|
|
}
|
|
event.locals.user = current_user;
|
|
}
|
|
|
|
const response = await resolve(event);
|
|
return response;
|
|
}; |