30 lines
923 B
TypeScript
30 lines
923 B
TypeScript
import { getServerSession } from "next-auth";
|
|
import { redirect } from "next/navigation";
|
|
import CalendarBoard from "../components/CalendarBoard";
|
|
import { authOptions } from "../lib/auth";
|
|
import { getAccessSettings } from "../lib/system-settings";
|
|
|
|
export default async function HomePage() {
|
|
const session = await getServerSession(authOptions);
|
|
const { publicAccessEnabled } = await getAccessSettings();
|
|
if (!session?.user && !publicAccessEnabled) {
|
|
redirect("/login");
|
|
}
|
|
const isBlocked =
|
|
session?.user &&
|
|
(session.user.status !== "ACTIVE" || session.user.emailVerified === false);
|
|
return (
|
|
<div className="space-y-8">
|
|
{isBlocked ? (
|
|
<div className="card-muted text-center">
|
|
<p className="text-slate-700">
|
|
Dein Konto wartet auf Freischaltung durch einen Admin.
|
|
</p>
|
|
</div>
|
|
) : (
|
|
<CalendarBoard />
|
|
)}
|
|
</div>
|
|
);
|
|
}
|