From d7dcbb356084df857391b9856a949d219f31462d Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 16 Oct 2025 15:07:04 +0200 Subject: [PATCH] Added login bypass --- src/lib/server/config.ts | 3 +++ src/lib/server/usermgmt.ts | 42 +++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/lib/server/config.ts b/src/lib/server/config.ts index 068d35d..5597c48 100644 --- a/src/lib/server/config.ts +++ b/src/lib/server/config.ts @@ -1,3 +1,4 @@ +import Bun from "bun" import path from "node:path" const to_absolute_path = (p: string): string => { @@ -40,6 +41,8 @@ class Config { private _session_timeout: number = 15 * 60 * 1000 private _session_refresh_grace: number = 5 * 60 * 1000 // time until expiration + readonly bypass_login = this.is_debug && process.env.BYPASS_LOGIN == "true" + get log_dir(): string { return this._log_dir } diff --git a/src/lib/server/usermgmt.ts b/src/lib/server/usermgmt.ts index d8c495e..c047338 100644 --- a/src/lib/server/usermgmt.ts +++ b/src/lib/server/usermgmt.ts @@ -158,6 +158,46 @@ class UserMgmt { } } -const _manager = new UserMgmt() +class _LOGIN_BYPASS_Mgmt extends UserMgmt { + global_session: SessionData | null = null + + constructor() { + super() + + db.user.findFirst().then((user) => { + if (!user) { + return + } + + this.global_session = { + token: "", + user: user, + expires: new Date(8640000000000000), // Max Time + issued: new Date() + } + }) + } + + async login(): Promise { + if (!this.global_session) { + const user = await db.user.findFirst() + if (user) { + this.global_session = { + token: "", + user: user, + expires: new Date(8640000000000000), // Max Time + issued: new Date() + } + } + } + return this.global_session + } + + async session_login(): Promise { + return this.login() + } +} + +const _manager = (Config.is_debug && Config.bypass_login) ? new _LOGIN_BYPASS_Mgmt() : new UserMgmt() export default _manager