Highlights: auf der Agenturadresse gibt es die Rudel-Bretter nicht mehr

Filipe, dringend: "ich kann gerade bei highlights keine videos
hochladen."

DAS HOCHLADEN WAR NICHT KAPUTT. Gemessen an der laufenden Datenbank:
49 Highlights, ALLE mit haus = crew -- so legt hausFuerNeuenEintrag
sie an, ausdruecklich "egal, von welcher Adresse aus jemand
hineinschreibt". Der Adressriegel vom 03.10. zeigt auf der
Agenturadresse aber nur haus = agentur:

    crew.     -> 49 Highlights
    workspace -> 0

Das Brett stand dort leer, und ein eingefuegtes Video verschwand in
derselben Sekunde: angelegt und sofort ausgeblendet. Von aussen sieht
das aus wie "geht nicht hoch". Beleg: Eintrag #77 wurde heute um
08:41 erfolgreich angelegt, #76 gestern von Filipe selbst.

Im Serverlog stand seit Stunden keine Fehlerzeile, und TikTok
antwortet dem Server normal (HTTP 200 in 0,2 s) -- beides geprueft,
bevor im Code gesucht wurde.

ZWEI REGELN WIDERSPRACHEN SICH, und jede fuer sich war richtig:
"diese Bretter sind immer crew" gegen "diese Adresse zeigt nur
agentur". Keine Pruefung konnte das merken, weil keine den
Zwischenraum ansah.

Aufgeloest in Filipes Richtung (Rueckfrage 05.10.): Auf der
Agenturadresse gibt es diese Bretter gar nicht -- 404 statt leerem
Brett. Das ist die Regel vom 24.09. beim Wort genommen: "auf jeder
Adresse nur deren Bestand."

EINE Regel (brettAufDieserAdresse), zwei Tore: die Middleware in
workspace-bereiche.js und die Video-Route, die NICHT an ihr haengt.
Ohne das zweite liesse sich weiterhin etwas anlegen, das danach
niemand sieht -- derselbe Zustand, nur still.

Ohne Adresse (Pruefungen, 127.0.0.1) bleibt alles offen, dieselbe
vorsichtige Richtung wie in nurDiesesHaus.

ZWEIMAL VON DER MESSUNG KORRIGIERT WORDEN:

1. Ich hatte zusaetzlich einen Kachelfilter gebaut. Er war toter
   Code: Auf der Agenturadresse liefert bereicheRoh `null` ("der
   Browser nimmt seine eigene Liste"), und in dieser stehen die
   Rudel-Bretter gar nicht -- weder in start.html noch in
   bereiche.js. Es gab nichts zu filtern. Wieder entfernt: Ein
   Filter, den nichts erreicht, sieht beim Lesen aus wie der Schutz,
   und man sucht den echten nicht mehr.

2. Meine erste Pruefzeile erwartete auf der Agenturadresse
   Serverkacheln und wurde rot -- zu Recht, ich hatte eine Liste
   vermutet, wo keine ist.

pruef-haus-trennung 100 -> 107, beide Richtungen und alle drei Wege
(Kachel, Brett, Video). Die Gegenprobe auf crew. schickt bewusst
KEINE echte TikTok-Adresse: Der Riegel sitzt vor der Adresspruefung,
also beweist 400 ebenso gut, dass er nicht gesprungen ist -- und der
Lauf geht dafuer nicht ins Netz. Mit einer echten Adresse riss der
Server beim Beenden in einen libuv-Absturz (107 Pruefungen, 1 Fehler,
Rueckgabewert 127).

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-05 12:19:10 +02:00
co-authored by Claude Opus 5
parent b625d901a5
commit adb265e603
4 changed files with 157 additions and 3 deletions
+8 -1
View File
@@ -82,7 +82,7 @@ import {
db, protokolliere, echteIp, sitzungLesen, DATEN_ORDNER, betreutWo, darfCreator, betreuteIds, istLeitung, istDogFather, siehtAlles, istSpicy, ohneDogFather,
externPruefen, externSql,
ohneTeamDogi, ohneAgentur, siehtModis, fuehrtTeamDogi, MODI_BEREICHE_ERLAUBT, brettHinterSeiteOffen, TEAM_DOGI_ROLLEN,
TREFF_BRETTER, TREFF_ROLLEN, AUSSEN_ROLLEN,
TREFF_BRETTER, TREFF_ROLLEN, AUSSEN_ROLLEN, brettAufDieserAdresse,
heuteLokal,
gehoertAufDieseAdresse,
bereicheFuer, kanaeleFuer, KANAELE,
@@ -949,6 +949,13 @@ bereicheRouter.use("/workspace/api/bereich/:bereich", (req, res, next) => {
Faellt eines weg, haelt das andere. */
if (TREFF_BRETTER.includes(b) && !TREFF_ROLLEN.has(req.person?.rolle)) return nein();
/* UND AUF DER AGENTURADRESSE GIBT ES SIE GAR NICHT (05.10.2026).
Begruendung bei `brettAufDieserAdresse` in workspace.js -- kurz:
Diese Bretter sind immer `crew`, der Adressriegel zeigt dort nur
`agentur`, also standen sie leer da und Neues verschwand sofort.
Jetzt antwortet die Seite gar nicht erst. */
if (!brettAufDieserAdresse(req.person, b)) return nein();
if (!TEAM_DOGI_ROLLEN.has(req.person?.rolle)) return next();
/* Bretter mit eigener Kachel: wer die Kachel hat, darf hinein. */
if (MODI_BEREICHE_ERLAUBT.has(b)) return next();