15 lines
524 B
TypeScript
15 lines
524 B
TypeScript
import { getServerSession } from "next-auth";
|
|
import { redirect } from "next/navigation";
|
|
import { adminAuthOptions, requiredAdminRole } from "./admin-auth";
|
|
|
|
export async function requireAdminSession() {
|
|
const session = await getServerSession(adminAuthOptions);
|
|
const roles = (session?.user as { roles?: string[] } | undefined)?.roles ?? [];
|
|
if (!session || !roles.includes(requiredAdminRole)) redirect("/admin/login");
|
|
|
|
return {
|
|
email: session.user?.email ?? null,
|
|
name: session.user?.name ?? null,
|
|
};
|
|
}
|