mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
32 lines
816 B
TypeScript
32 lines
816 B
TypeScript
import { redirect } from 'sveltekit-flash-message/server';
|
|
import { notSignedInMessage } from '$lib/flashMessages';
|
|
import db from '$lib/drizzle';
|
|
import { eq } from 'drizzle-orm';
|
|
import { user_roles } from '../../../../schema';
|
|
|
|
export async function load(event) {
|
|
const { locals } = event;
|
|
if (!locals?.user) {
|
|
redirect(302, '/login', notSignedInMessage, event);
|
|
}
|
|
|
|
const { user } = locals;
|
|
const userRoles = await db.query.user_roles.findMany({
|
|
where: eq(user_roles.user_id, user.id),
|
|
with: {
|
|
role: {
|
|
columns: {
|
|
name: true
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
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);
|
|
}
|
|
|
|
return {};
|
|
}
|