Auf der Team-Adresse gibt es die Agenturseiten nicht

Filipe, mit dem Bildschirmfoto des Start-Checks auf crew.: "das gibt
es in der app nicht, dass ist nur auf der workspace app aber nicht
hier."

ES WAR GROESSER ALS DIESE EINE SEITE. Gemessen, bevor gebaut:

  DogFather    12 Seiten ohne Kachel erreichbar, 10 davon Agentur
               (Automationen, Content, Scouting, Reports, Zahlen,
               Team, Calls, Creator-Profil, Dashboard, Start-Check)
  rechte Hand   5, davon 3 Agentur
  ein Modi      6, davon 3 Agentur -- auch der Start-Check

Die Haustrennung vom 10.09. entscheidet, WAS jemand sieht: sie filtert
Daten und Kacheln. Sie entschied nie, welche SEITEN es auf einer
Adresse gibt. Die Rechtetafel wiederum kennt nur Rollen, keine
Adressen. Zwischen beidem lag das Loch -- und der Start-Check sagte
dort "Es gibt noch keinen Creator", weil ihm die Haustrennung alle
Daten wegnimmt. Eine Seite, die laedt und leer ist, sieht aus wie ein
Fehler.

DIE REGEL WIRD ABGELEITET, NICHT GEPFLEGT: Welche Seiten zu dieser
Adresse gehoeren, steht schon in den KACHELN, die dieselbe Adresse
dieser Person zeigt. Dazu drei Seiten, die in jedem Haus dazugehoeren
und keine Kachel haben (start, treff-regeln, entwicklung). Sie altert
sicher -- eine neue Agenturseite ist dort automatisch zu, eine neue
Crew-Seite ohne Kachel faellt beim ersten Klick auf.

UND SIE AENDERT KEINE RECHTE. Was jemand DARF, steht weiter allein in
rechte.js; diese Regel beantwortet, ob es das hier ueberhaupt gibt.
Nur die Seiten, nicht die Schnittstellen -- die filtern seit dem 10.09.
selbst ueber person.haus.

DREI PRUEFUNGEN, DIE VORHER SCHON ROT WAREN, nachgemessen gegen den
Stand von heute frueh (2712473), damit ich sie nicht mir selbst
zuschreibe -- und zwei davon repariert:

  pruef-treff       Sie fragte "enthaelt die Antwort irgendein
                    gefuelltes Feld" und wurde rot, als das
                    Aufgabenbrett die drei Aufwandsstufen mitzuliefern
                    begann. Die sagen ueber niemanden etwas. Eine
                    Warnung, die immer kommt, wird ueberlesen -- also
                    praeziser statt lauter: Ein Datensatz hat eine id,
                    ein Vokabular einen schluessel und keine.
  pruef-neue-seiten War gruen und wurde durch MEINE Arbeit rot: Mit
                    dem Umzug der sechs Fragen blieben bei 390 px noch
                    14 Textstuecke statt der geforderten 15 -- alle
                    lesbar. Die Zahl auf 14 zu setzen waere derselbe
                    Fehler mit einer anderen Zahl gewesen; die Aufgabe
                    ("die Seite hat wirklich gerendert") erledigt zwei
                    Zeilen hoeher schon die Zeichenzahl.
  pruef-kachel-universum, pruef-struktur, pruef-modi-wortleck
                    unveraendert rot, nicht von hier -- offen.

Ausserdem: "wenn alle 1 sie gesetzt haben" auf der eigenen Karte. Das
ist keine Auskunft, sondern eine Rechnung -- derselbe Fall wie "vor 0
Tagen" heute frueh. Zwei Lagen, zwei Saetze.

  server/pruef-haus-seiten.mjs   24 Pruefungen, 0 Fehler (Port 4422)
  pruef-crew-adresse 132, pruef-modi-verborgen 80, pruef-haus-trennung 66,
  pruef-treff 66, pruef-treff-werkzeuge 70, pruef-neue-seiten 93,
  pruef-befinden 48, pruef-schritt 46 -- alle 0 Fehler

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-15 14:19:15 +02:00
co-authored by Claude Opus 5
parent c615eab236
commit 44a6b7cb83
35 changed files with 762 additions and 365 deletions
+88
View File
@@ -3896,6 +3896,87 @@ function schrankenPfad(roh) {
Eintrag in rechte.js oeffnet sich fuer keine Rolle, auch nicht fuer
DogFather -- und pruef-rechtetafel meldet sie, statt dass man es
beim Ausprobieren merkt. */
/* =====================================================================
AUF DER ADRESSE VON TEAM DOGI GIBT ES DIE AGENTURSEITEN NICHT
(15.09.2026)
Filipe, mit dem Bildschirmfoto des Start-Checks auf crew.:
„das gibt es in der app nicht, dass ist nur auf der workspace app
aber nicht hier."
---------------------------------------------------------------------
ES WAR GROESSER ALS DIESE EINE SEITE
Die Haustrennung von 10.09. entscheidet, WAS jemand sieht -- sie
filtert die Daten und die Kacheln. Sie entschied nie, welche SEITEN
es auf einer Adresse gibt. Die Rechtetafel wiederum kennt nur Rollen,
keine Adressen. Zwischen beidem lag das Loch.
Gemessen am 15.09.2026, auf crew.:
DogFather 12 Seiten ohne Kachel erreichbar, 10 davon Agentur
(Automationen, Content, Scouting, Reports, Zahlen,
Team, Calls, Creator-Profil, Dashboard, Start-Check)
rechte Hand 5, davon 3 Agentur
ein Modi 6, davon 3 Agentur -- auch der Start-Check
Der Start-Check sagt dort „Es gibt noch keinen Creator", weil die
Haustrennung ihm alle Daten wegnimmt. Das ist genau die Sorte Seite,
die aussieht wie ein Fehler: Sie laedt, sie ist leer, und niemand
weiss, ob das Absicht ist oder etwas kaputt.
---------------------------------------------------------------------
DIE REGEL WIRD ABGELEITET, NICHT GEPFLEGT
Welche Seiten zu dieser Adresse gehoeren, steht schon irgendwo:
in den KACHELN, die dieselbe Adresse dieser Person zeigt. Eine
zweite Liste daneben waere die, die beim naechsten Umbau
auseinanderlaeuft -- diesen Fehler hat das Projekt schon zweimal
bezahlt (die abgeschriebenen Spalten am 07. und 11.09.).
Dazu eine kurze Liste von Seiten, die in jedem Haus dazugehoeren und
trotzdem keine Kachel haben. Sie altert SICHER: Eine neue
Agenturseite ist hier automatisch gesperrt (richtig), eine neue
Crew-Seite ohne Kachel faellt beim ersten Klick auf (sichtbar) --
nicht still.
UND SIE AENDERT KEINE RECHTE. Was jemand DARF, steht weiterhin
allein in rechte.js. Diese Regel beantwortet eine andere Frage:
Gibt es das hier ueberhaupt? Deshalb steht sie neben der
Rechtepruefung und nicht in ihr.
NUR DIE SEITEN, NICHT DIE SCHNITTSTELLEN. Die filtern seit dem
10.09. selbst ueber person.haus und brauchen das hier nicht --
eine zweite Rechtelogik davor waere die, die irgendwann etwas
durchlaesst. Wer das aendert, aendert es dort.
===================================================================== */
/** Seiten, die in JEDEM Haus dazugehoeren und keine Kachel haben. */
const OHNE_KACHEL_UEBERALL = new Set([
/* Die Startseite selbst -- sie ist das Ziel der Umleitung. */
"/workspace/start.html",
/* Die Regeln des Treffs. Sie gehoeren der Community und dem Team. */
"/workspace/treff-regeln.html",
/* Die Entwicklungskarte. Ein Modi hat dafuer keine Kachel, kommt
aber ueber „Deine Karte“ und ueber den Verweis von befinden.html
dorthin -- und beides ist seine eigene Sache. */
"/workspace/entwicklung.html",
]);
/** Gibt es diese Seite auf der Adresse, auf der die Person gerade steht? */
export function gehoertAufDieseAdresse(person, pfad) {
/* Auf der Agenturadresse aendert sich nichts. Dort leben diese
Seiten -- die Frage stellt sich nur andersherum. */
if (person?.haus !== "crew") return true;
if (OHNE_KACHEL_UEBERALL.has(pfad)) return true;
const ziele = new Set(
[...(bereicheFuer(person) || []), ...(zusatzBereicheFuer(person) || [])]
/* Ohne den Frageteil: Die Brettkacheln zeigen auf
bereich.html?b=treff -- gemeint ist die Seite, nicht das Brett. */
.map((k) => "/workspace/" + String(k?.ziel || "").split("?")[0]));
return ziele.has(pfad);
}
workspaceRouter.use((req, res, next) => {
const pfad = schrankenPfad(req.path);
if (!pfad.startsWith("/workspace/") || !pfad.endsWith(".html")) return next();
@@ -3914,6 +3995,13 @@ workspaceRouter.use((req, res, next) => {
if (!darfSeite(person, pfad)) {
return res.redirect(302, "/workspace/start.html");
}
/* UND: GIBT ES DIESE SEITE HIER? Dieselbe Umleitung wie oben und
nicht ein 404 -- an dieser Schranke gibt es eine Antwort auf
„nein", nicht zwei. Zwei Verhalten nebeneinander waeren die
Einladung, aus dem Unterschied etwas abzulesen. */
if (!gehoertAufDieseAdresse(person, pfad)) {
return res.redirect(302, "/workspace/start.html");
}
return next();
});