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>
22 lines
653 B
TypeScript
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 };
|
|
}
|