Menu
Public repository / 1834a0f9ce646d37e9636b79e2640f2c8f854e4a
AkurAI-Mail / src/routes/webmail/+page.ts
Latest change 0abca36834dc5ac48f7141026da610b6c22c7533 - fix: load mailbox sessions without admin status by Ólafur Búi Ólafsson
import { api } from "$lib/api";
export async function load({ url }) {
const requested = url.searchParams.get("mailbox") ?? "";
const authCheck = await api("/api/auth/check");
const admin = authCheck.authenticated;
if (!admin && !authCheck.mailbox) {
window.location.href = `/webmail/login?next=${encodeURIComponent(url.pathname)}`;
throw new Error("authentication required");
}
const status = admin
? await api("/api/status")
: { hostname: url.hostname, users: [{ email: authCheck.mailbox }] };
const users = status.users;
const mailbox = admin && users.some((u: any) => u.email === requested)
? requested
: authCheck.mailbox || users[0]?.email || "olibuijr@olibuijr.com";
const webmail = await api(`/api/webmail?email=${encodeURIComponent(mailbox)}&folder=Inbox`);
const publicStatus = admin ? status : { hostname: status.hostname, users: users.filter((u: any) => u.email === mailbox) };
return { status: publicStatus, webmail, admin, sessionMailbox: mailbox };
}