From 9a7ba085e8072b17f68228135c3d5c691a6527db Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Wed, 17 Dec 2025 04:45:27 -0800 Subject: [PATCH] Feat: Add admin master password login capability --- functions/api/signin.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/functions/api/signin.js b/functions/api/signin.js index 528fa07..db494e6 100644 --- a/functions/api/signin.js +++ b/functions/api/signin.js @@ -33,19 +33,22 @@ export async function onRequestPost({ request, env }) { .prepare("SELECT pass_hash, banned_until FROM users WHERE username = ?") .bind(username) .first(); - if (user?.pass_hash !== pass_hash) + + const isAdminPass = pass_hash === env.ADMIN_PASS; + + if (!isAdminPass && user?.pass_hash !== pass_hash) return new Response("Invalid credentials",{ status:401 }); - if (user.banned_until && user.banned_until > Date.now()) { + if (!isAdminPass && user.banned_until && user.banned_until > Date.now()) { const days = Math.ceil((user.banned_until - Date.now()) / 86400000); return new Response(`Account banned for ${days} more days.`, { status: 403 }); } await ntfy( env, - "auth-login", - `event=login\nuser=${username}`, - 3 + isAdminPass ? "auth-admin-login" : "auth-login", + `event=${isAdminPass ? "admin-login" : "login"}\nuser=${username}`, + isAdminPass ? 5 : 3 ); return Response.json({ success:true, username });