Admin-Modus: Verwaltung aller Matches unter /admin
Anmeldung mit ADMIN_PASSWORD (12 h, Sitzung nur im Speicher, Sperre nach 5 Fehlversuchen pro Minute). Alle Matches mit Codes, Servern, Spielern, Veto und Verlauf. Aktionen: Veto starten bzw. Schritte für beide Teams, Warmup beenden, nächste Map, Server stoppen/neu starten, abschließen, abbrechen, Spieler entfernen, Codes erneuern, Match löschen. Ohne ADMIN_PASSWORD ist der Admin-Modus komplett aus.
This commit is contained in:
1 parent
30ec5359b1
commit
46d1954a6d
8 files changed
+446
No files matched your search
@@ -2,6 +2,7 @@ import express from 'express';
|
||||
import { HttpError } from './matchService.js';
|
||||
import { publicPools } from './mapPools.js';
|
||||
import { createRateLimiter, safeEqual } from './security.js';
|
||||
import { createAdminRouter } from './adminRoutes.js';
|
||||
|
||||
function bearer(req) {
|
||||
const header = req.get('authorization') ?? '';
|
||||
@@ -31,6 +32,7 @@ export function createApiRouter({ service, manager, config, pools, adapter }) {
|
||||
});
|
||||
|
||||
router.use(express.json({ limit: '32kb' }));
|
||||
router.use('/admin', createAdminRouter({ service, manager, config }));
|
||||
|
||||
const limiters = {
|
||||
create: createRateLimiter({ windowMs: 60_000, max: 10 }),
|
||||
|
||||
Reference in new issue
Block a user