From 3d89e108f3feffabb48ded4c819cf3cbf355d70e Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 14 Aug 2026 17:10:40 +0200 Subject: [PATCH] Fix terms acceptance enforcement in register - Add termsAccepted to raw form data object - Check if terms were accepted before DB insert - Return error if terms not accepted - All TypeScript and Biome checks pass --- src/actions/register.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/actions/register.ts b/src/actions/register.ts index 78edb645a2..5e4f9c5173 100644 --- a/src/actions/register.ts +++ b/src/actions/register.ts @@ -52,6 +52,7 @@ export async function register( String(formData.get("look") ?? "") .normalize("NFC") .trim() || DEFAULT_LOOK, + termsAccepted: formData.get("terms") === "on", }; const parsed = registerSchema.safeParse(raw); @@ -76,6 +77,10 @@ export async function register( return "Captcha verification failed. Please try again."; } + // Terms acceptance check. + if (!raw.termsAccepted) + return "You must accept the terms and conditions to register."; + // VPN/proxy block (only when enabled in /admin/vpn). if ((await checkVpn(ip)).blocked) { return (