import "server-only"; import { notFound, redirect } from "next/navigation"; import { admin, required, user } from "./supabase"; import { canReviewMaps, isAdministrator } from "@/shared/permissions"; export async function staffPage(adminOnly = false) { const account = await user(); const destination = adminOnly ? "/admin" : "/moderation"; if (!account) redirect("/log-in?next=" + encodeURIComponent(destination)); const profile = required( await admin() .from("profiles") .select("role,account_status") .eq("id", account.id) .single(), ); if ( profile.account_status !== "active" || !canReviewMaps(profile.role) || (adminOnly && !isAdministrator(profile.role)) ) notFound(); return profile; }