feat(platform): add Discord onboarding and Velocity gate

This commit is contained in:
dmg
2026-08-01 13:45:18 -04:00
parent 9d305e5dc9
commit c5de0a1810
80 changed files with 4840 additions and 1572 deletions
@@ -0,0 +1,35 @@
"use server";
import { appSettings } from "@minecraft-account-manager/database";
import { getServerSession } from "next-auth";
import { redirect } from "next/navigation";
import { adminAuthOptions, requiredAdminRole } from "@/lib/auth/admin-auth";
import { db } from "@/lib/database";
export async function saveDiscordSettings(formData: FormData) {
const session = await getServerSession(adminAuthOptions);
const roles = (session?.user as { roles?: string[] } | undefined)?.roles ?? [];
if (!session || !roles.includes(requiredAdminRole)) redirect("/admin/login");
const registrationMessage = String(formData.get("registrationMessage") ?? "").trim();
if (registrationMessage.length < 10 || registrationMessage.length > 500) {
redirect("/admin?error=invalid-message");
}
await db
.insert(appSettings)
.values({
id: "default",
registrationMessage,
})
.onConflictDoUpdate({
target: appSettings.id,
set: {
registrationMessage,
updatedAt: new Date(),
},
});
redirect("/admin?saved=1");
}