27 lines
860 B
TypeScript
27 lines
860 B
TypeScript
import { redirect } from '@sveltejs/kit';
|
|
import type { RequestEvent } from '@sveltejs/kit';
|
|
import { pbAdmin } from '$lib/server/pocketbase';
|
|
|
|
export function getSession(event: RequestEvent) {
|
|
return event.locals.user;
|
|
}
|
|
|
|
export function requireAuth(event: RequestEvent) {
|
|
const session = getSession(event);
|
|
if (!session) {
|
|
throw redirect(303, '/login');
|
|
}
|
|
return session;
|
|
}
|
|
|
|
export function clearSession(event: RequestEvent) {
|
|
event.cookies.delete('session', { path: '/' });
|
|
event.cookies.delete('pb_token', { path: '/' });
|
|
event.cookies.delete('device_token', { path: '/' });
|
|
}
|
|
|
|
// Resolve the fam slug + admin display name used for the post-login redirect.
|
|
export async function getFamContext(famId: string) {
|
|
const fam = await pbAdmin.getOne('fams', famId).catch(() => null);
|
|
return { famSlug: fam?.slug || famId, famName: fam?.name || '' };
|
|
} |