44 lines
1.6 KiB
Plaintext
44 lines
1.6 KiB
Plaintext
|
|
# server-patch.txt — Admin static-serve patch för /opt/amos/scripts/server.mjs
|
|||
|
|
# Genererad: 2026-05-10
|
|||
|
|
|
|||
|
|
## Vad ska läggas till
|
|||
|
|
|
|||
|
|
Infoga följande rad I /opt/amos/scripts/server.mjs:
|
|||
|
|
|
|||
|
|
app.use('/admin', requirePageAuth, express.static(path.join(__dirname, '../public/admin')));
|
|||
|
|
|
|||
|
|
## Var (viktig säkerhetsaspekt)
|
|||
|
|
|
|||
|
|
Raden MÅSTE placeras FÖRE rad 3642 (den globala express.static-raden):
|
|||
|
|
|
|||
|
|
app.use(express.static(join(__dirname, '../public')));
|
|||
|
|
|
|||
|
|
Om den placeras EFTER den globala static-servern kommer Express att servera
|
|||
|
|
filer under /public/admin/ utan autentisering — auth-middlewaren nås aldrig.
|
|||
|
|
|
|||
|
|
## Exakt insättningspunkt
|
|||
|
|
|
|||
|
|
Fil: /opt/amos/scripts/server.mjs
|
|||
|
|
Rad: 3642 (före denna rad)
|
|||
|
|
|
|||
|
|
Befintligt block (rad 3124–3129) hanterar redan .html-filer med requireAdminRole.
|
|||
|
|
Den nya raden skyddar även statiska assets (JS, CSS, bilder) under /public/admin/.
|
|||
|
|
|
|||
|
|
## Diff
|
|||
|
|
|
|||
|
|
--- a/scripts/server.mjs
|
|||
|
|
+++ b/scripts/server.mjs
|
|||
|
|
@@ -3641,6 +3641,7 @@
|
|||
|
|
});
|
|||
|
|
+app.use('/admin', requirePageAuth, express.static(path.join(__dirname, '../public/admin')));
|
|||
|
|
app.use(express.static(join(__dirname, '../public')));
|
|||
|
|
|
|||
|
|
## Notera
|
|||
|
|
|
|||
|
|
- Befintlig kod använder `join` (importerad från 'path'), inte `path.join`.
|
|||
|
|
Funktionellt identiskt — välj samma stil som resten av filen för konsekvens:
|
|||
|
|
app.use('/admin', requirePageAuth, express.static(join(__dirname, '../public/admin')));
|
|||
|
|
- `requirePageAuth` kontrollerar inloggning. Om admin-assets även kräver admin-roll,
|
|||
|
|
lägg till `requireAdminRole` som andra middleware:
|
|||
|
|
app.use('/admin', requirePageAuth, requireAdminRole, express.static(join(__dirname, '../public/admin')));
|