make admin cookie name variable
All checks were successful
deploy / build-and-deploy (/testvaro, /opt/website-test, website-test) (push) Successful in 24s
deploy / build-and-deploy (/varo, /opt/website, website) (push) Successful in 23s

This commit is contained in:
2025-06-09 15:45:21 +02:00
parent eb45e03f16
commit b8ed48a68b
3 changed files with 8 additions and 6 deletions

View File

@ -4,10 +4,11 @@ DATABASE_URI=mysql://website:website@localhost:3306/website
ADMIN_USER=admin
ADMIN_PASSWORD=admin
ADMIN_COOKIE=muelleel
TEAMSPEAK_LINK=http://example.com
DISCORD_LINK=http://example.com
PAYPAL_LINK=http://example.com
SERVER_IP=1.1.1.1
BASE_PATH=http://localhost:4321/varo
BASE_PATH=http://localhost:4321

View File

@ -36,6 +36,7 @@ export default defineConfig({
ADMIN_USER: envField.string({ context: 'server', access: 'secret', optional: true }),
ADMIN_PASSWORD: envField.string({ context: 'server', access: 'secret', optional: true }),
ADMIN_COOKIE: envField.string({ context: 'server', access: 'secret', default: 'muelleel' }),
START_DATE: envField.string({ context: 'server', access: 'secret', default: '1970-01-01' }),

View File

@ -2,9 +2,9 @@ import type { AstroCookies, AstroCookieSetOptions } from 'astro';
import { ActionError } from 'astro:actions';
import crypto from 'node:crypto';
import { Permissions } from './permissions.ts';
import { ADMIN_COOKIE } from 'astro:env/server';
export class Session {
static readonly #cookieName = 'muelleel';
static readonly #cookieOptions: AstroCookieSetOptions = {
httpOnly: true,
path: '/',
@ -28,7 +28,7 @@ export class Session {
for (let i = 0; i < Session.#sessions.length; i++) {
if (Session.#sessions[i] == this) {
Session.#sessions = Session.#sessions.splice(i, 1);
if (cookies) cookies.delete(Session.#cookieName, Session.#cookieOptions);
if (cookies) cookies.delete(ADMIN_COOKIE, Session.#cookieOptions);
break;
}
}
@ -38,13 +38,13 @@ export class Session {
const session = new Session(crypto.randomBytes(16).toString('hex'), adminId, permissions);
Session.#sessions.push(session);
cookies.set(Session.#cookieName, session.sessionId, Session.#cookieOptions);
cookies.set(ADMIN_COOKIE, session.sessionId, Session.#cookieOptions);
return session;
}
static sessionFromCookies(cookies: AstroCookies, neededPermissions?: Permissions) {
const sessionId = cookies.get(Session.#cookieName);
const sessionId = cookies.get(ADMIN_COOKIE);
if (!sessionId) return null;
for (const session of Session.#sessions) {
@ -60,7 +60,7 @@ export class Session {
}
static actionSessionFromCookies(cookies: AstroCookies, neededPermissions?: Permissions) {
const sessionId = cookies.get(Session.#cookieName);
const sessionId = cookies.get(ADMIN_COOKIE);
if (!sessionId) throw new ActionError({ code: 'UNAUTHORIZED' });
for (const session of Session.#sessions) {