librelad 875a60f90f LibrePortal v0.1.0 — initial release
A free, open, self-hosted app platform (GNU AGPLv3): one-click app deploys,
Traefik reverse proxy with automatic SSL, rootless Docker support, gluetun
VPN routing, and a web dashboard to manage it all.

Free & open forever to self-host; optional paid hosted services fund it.
See PROMISE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-21 20:37:54 +01:00

22 lines
653 B
TypeScript

import { auth } from "@/auth";
import { redirect } from "next/navigation";
import { db } from "@/db";
import { users } from "@/db/schema";
import { eq } from "drizzle-orm";
export async function requireUser() {
const session = await auth();
if (!session?.user?.id) redirect("/login");
return session.user;
}
export async function requireHousehold() {
const user = await requireUser();
if (!user.householdId) {
const [u] = await db.select().from(users).where(eq(users.id, user.id));
if (!u?.householdId) redirect("/onboarding");
return { user, householdId: u.householdId };
}
return { user, householdId: user.householdId };
}