From d0a696f01318a52a5deb95fd6db3d68e0db68b58 Mon Sep 17 00:00:00 2001 From: Aryan Singh Date: Fri, 16 Oct 2026 20:44:39 -0500 Subject: [PATCH 1/2] Support Forge Server Login account management and registration prompts --- dashboard/src/app/(panel)/access/page.tsx | 13 ++++++++++--- dashboard/src/app/api/approved/route.ts | 4 ++-- dashboard/src/server/authflow.ts | 5 +++-- dashboard/src/server/mc.ts | 22 ++++++++++++++++++++++ dashboard/tests/auth-provider.test.ts | 22 ++++++++++++++++++++++ 5 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 dashboard/tests/auth-provider.test.ts diff --git a/dashboard/src/app/(panel)/access/page.tsx b/dashboard/src/app/(panel)/access/page.tsx index 704805d..c5c6d98 100644 --- a/dashboard/src/app/(panel)/access/page.tsx +++ b/dashboard/src/app/(panel)/access/page.tsx @@ -21,6 +21,8 @@ type AccessData = { approved: ApprovedPlayer[]; whitelist: string[] | null; registered: string[] | null; + authProvider: "easyauth" | "serverlogin"; + registrationCommand: string; }; const STATUS_BADGE: Record = { @@ -80,7 +82,7 @@ export default function AccessPage() {

Access & Auth

- Only approved usernames can join. New players must /register within the window, then{" "} + Only approved usernames can join. New players must register within the window using {data?.registrationCommand ?? "/register "}, then{" "} /login on every visit.

@@ -105,7 +107,7 @@ export default function AccessPage() {

Approving whitelists the name and starts the registration countdown. Tell your friend to join{" "} - right away and run /register <password> <password>. If the timer + right away and run {data?.registrationCommand ?? "/register "}. If the timer expires first, the name is automatically removed from the whitelist.

@@ -183,7 +185,7 @@ export default function AccessPage() { Re-open window )} - {p.status === "registered" && ( + {p.status === "registered" && data?.authProvider !== "serverlogin" && ( <> + )} {p.status !== "revoked" && (