Haustrennung: kein Eintrag mehr aus dem anderen Haus
Filipe, 24.09.2026: "wenn ich bei der einen was mache soll nichts bei
der anderen passieren." -- und heute: "ja los".
GEMESSEN, BEVOR ETWAS ANGEFASST WURDE (jedes Brett x beide Adressen x
vier Rollen):
AGENTUR-Adresse DogFather 18 Bretter
Manager 6 Bretter
Creator 6 Bretter
Modi kommt nicht rein (401)
CREW-Adresse DogFather 18 Bretter
Modi 13 Bretter
Manager kommt nicht rein (401)
Creator kommt nicht rein (401)
Die Anmeldung war also dicht. Durch griff genau EINE Rolle: DogFather.
Er wohnt in beiden Haeusern, und die Riegel in sichtbarEintrag()
fragten nach der ROLLE, nicht nach der Adresse. Auf der Crew-Adresse
stand damit das Brett der Agentur samt Inhalt.
Nachgemessen ist der Durchgriff AELTER als der gestrige Eventkarten-
Umbau -- zweimal gemessen, mit und ohne ihn, gleiches Ergebnis.
RIEGEL 0 in sichtbarEintrag(): Wer auf einer Adresse angemeldet ist,
sieht nur Eintraege dieses Hauses. Er haengt den uebrigen Riegeln
UM, statt in jeden Ausgang geschrieben zu werden -- die Funktion hat
drei Rueckgabepunkte, und der naechste waere sonst wieder offen.
Nachher, dieselbe Messung: DogFather sieht auf der Agenturadresse nur
Agentur-Eintraege, auf der Crew-Adresse nur die des Rudels. Manager,
Creator und Modi unveraendert.
WAS DABEI SCHIEFGING UND WIE ES AUFFIEL
1. Die erste Fassung liess bei `haus IS NULL` den BEREICH entscheiden.
pruef-haus-trennung.mjs wurde sofort rot: "Lunas Live vom Montag"
verschwand von der Agenturadresse. `live`, `technik` und
`community` tragen BEIDES -- die Kacheln von Team Dogi und die
Creator-Akten. Eine Regel, die jedem Brett genau ein Haus zuweist,
kann das nicht. Jetzt bleibt ein Eintrag ohne Haus sichtbar: ein
Eintrag zu viel faellt auf, ein fehlender nicht.
2. Damit NULL kein Dauerloch ist: FUENF von ACHT Stellen, die
Eintraege anlegen, setzten `haus` gar nicht (workspace-video.js,
-content.js, -bewerbung.js, -treff.js, -vorlagen.js). Nachgetragen.
3. Und `person.haus` war dafuer der falsche Massstab: Legt DogFather
ueber die Agenturadresse ein Highlight an, gehoert es trotzdem dem
Rudel -- sonst sieht die Community es nie. pruef-treff.mjs hat das
gefunden (2 Fehler). Neu: hausFuerNeuenEintrag() -- bei den sieben
Brettern des Rudels entscheidet das BRETT, sonst die Adresse.
NEU: pruef-haus-luecke.mjs (12 Pruefungen). Sie sucht die
Einfuege-Stellen im Quelltext und wird rot, sobald eine neunte
dazukommt, die `haus` vergisst -- mit Gegenprobe, dass das Suchmuster
eine solche Stelle auch wirklich erkennt. Ein Kommentar daneben haette
es nicht verhindert; das steht so schon im Projektgedaechtnis.
NEBENBEI: In bereich.js stand seit gestern `|| "Agentur-Events"` als
Rueckfall fuer das Etikett der Vorschau. pruef-treff.mjs verbietet
das zu Recht -- wie ein Brett heisst, haengt am Haus, und der Server
sagt es. Der Rueckfall ist weg; fehlt die Angabe, steht lieber kein
Etikett da als ein falsches.
pruef-treff.mjs nachgezogen (85 -> 86 Pruefungen, nicht weniger): Die
Zusage "DogFather sieht den Beitrag" wird jetzt auf der Crew-Adresse
geprueft, mit Gegenprobe fuer die Agenturadresse.
GEPRUEFT, alle gruen:
pruef-haus-luecke 12 pruef-haus-trennung 100
pruef-crew-adresse 169 pruef-treff 86
pruef-eventkarte 77 pruef-agentur 62
pruef-haus-seiten 38 pruef-eintrag-bild 24
pruef-vorlagen 24 pruef-video, -content, -bewerbung,
-bereiche-lesend: in Ordnung
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -2296,6 +2296,49 @@ const BRETTER_UEBER_SEITEN = {
|
||||
|
||||
/** Bretter mit eigener Kachel. Diese darf jeder aus dem Team, der die
|
||||
* Kachel sieht -- sie sind daraus abgeleitet, nicht abgeschrieben. */
|
||||
/** In welches Haus gehoert ein NEU angelegter Eintrag?
|
||||
*
|
||||
* ==== WARUM NICHT EINFACH `person.haus` (03.10.2026) ===============
|
||||
*
|
||||
* Genau das stand an allen acht Einfuege-Stellen -- und
|
||||
* pruef-treff.mjs hat gezeigt, dass es falsch ist:
|
||||
*
|
||||
* FEHL die Community sieht es SOFORT -- ohne zweiten Klick
|
||||
* FEHL DogFather sieht den Beitrag
|
||||
*
|
||||
* Beide Male legt DogFather ueber die AGENTURADRESSE einen Beitrag
|
||||
* auf einem Brett des Rudels an (`highlight`, `anschlag`). Mit
|
||||
* `person.haus` bekam der Beitrag das Haus "agentur" -- und war
|
||||
* damit fuer die Community auf crew. unsichtbar. Auf einem Brett,
|
||||
* das es nur dort gibt.
|
||||
*
|
||||
* Der richtige Massstab steht schon im Kommentar von
|
||||
* eintraegeNachHaus() weiter unten: "Das Haus eines Eintrags -- aus
|
||||
* seinem BEREICH, nicht aus dem Ersteller. `regeln`, `anschlag`,
|
||||
* `highlight` sind Bretter von Team Dogi, `agentur` gehoert der
|
||||
* Agentur; das steht fest, unabhaengig davon, wer gerade
|
||||
* hineingeschrieben hat."
|
||||
*
|
||||
* ABER NICHT FUER JEDES BRETT. `live`, `technik` und `community`
|
||||
* tragen BEIDES: die Kacheln von Team Dogi und die Creator-Akten der
|
||||
* Agentur. Dort ist die Adresse, auf der jemand schreibt, die beste
|
||||
* Auskunft, die es gibt -- und die einzige.
|
||||
*
|
||||
* Also: Wo das Brett eindeutig ist, entscheidet das Brett. Wo nicht,
|
||||
* die Adresse. TREFF_BRETTER ist die gepflegte Liste der eindeutigen
|
||||
* Bretter des Rudels; `agentur` ist das Gegenstueck auf der anderen
|
||||
* Seite und steht in BEREICHE, nicht hier.
|
||||
*/
|
||||
export function hausFuerNeuenEintrag(person, bereich) {
|
||||
/* Die sieben Bretter des Rudels gibt es nur bei Team Dogi -- egal,
|
||||
von welcher Adresse aus jemand hineinschreibt. */
|
||||
if (TREFF_BRETTER.includes(String(bereich))) return "crew";
|
||||
/* Sonst entscheidet die Adresse. Ohne Adresse (Pruefungen,
|
||||
127.0.0.1) bleibt es offen -- und ein Eintrag ohne Haus ist in
|
||||
beiden sichtbar, die bewusst sichere Richtung. */
|
||||
return person?.haus || null;
|
||||
}
|
||||
|
||||
export const MODI_BEREICHE_ERLAUBT = new Set([
|
||||
...HAND_MIT_TREFF
|
||||
.map((k) => (/bereich\.html\?b=([a-z]+)/.exec(k.ziel) || [])[1])
|
||||
|
||||
Reference in New Issue
Block a user