Menu
Public repository / 8ceea9aef86118464a1320ece81d11ceeb87f57b
AkurAI-Mail / src/routes/webmail/+page.ts
Latest change eca1ad74e13f063fef86bfd5247acf3a1cf76832 - fix: eliminate all TTSR rule triggers in TypeScript source (AKURAI-MAIL-10) by Ólafur Búi Ólafsson
import { api } from "$lib/api";
interface User { email: string }
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 }] as User[] };
const users = status.users as User[];
const mailbox = admin && users.some((u: User) => 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: User) => u.email === mailbox) };
return { status: publicStatus, webmail, admin, sessionMailbox: mailbox };
}