25 lines
946 B
TypeScript
25 lines
946 B
TypeScript
import type { LayoutServerLoad } from './$types';
|
|
import { Admin, Report, User } from '$lib/server/database';
|
|
import { getSession } from '$lib/server/session';
|
|
import { redirect } from '@sveltejs/kit';
|
|
import { env } from '$env/dynamic/public';
|
|
|
|
export const load: LayoutServerLoad = async ({ route, cookies }) => {
|
|
const session = getSession(cookies);
|
|
|
|
if (session == null && route.id != '/admin/login')
|
|
throw redirect(302, `${env.PUBLIC_BASE_PATH}/admin/login`);
|
|
|
|
return {
|
|
userCount: session?.permissions.userRead() ? await User.count() : null,
|
|
reportCount: session?.permissions.reportRead()
|
|
? await Report.count({ where: { draft: false, status: ['none', 'review'] } })
|
|
: null,
|
|
adminCount: session?.permissions.adminRead() ? await Admin.count() : null,
|
|
settingsRead: session?.permissions.settingsRead(),
|
|
self: session
|
|
? JSON.parse(JSON.stringify(await Admin.findOne({ where: { id: session.userId } })))
|
|
: null
|
|
};
|
|
};
|