Eine Kampagne gehoert zur Agentur -- auch wenn DogFather ueberall admin ist
Aufgefallen beim Nachweis auf der echten Adresse, nicht beim Bauen: Der Kasten haengt an `bereich === "agentur"` und an der Rolle. DogFather ist aber in BEIDEN Haeusern `admin`. Oeffnet er auf crew.dogfather-universe.com von Hand `bereich.html?b=agentur`, dann stimmt der Bereich, die Rolle stimmt -- und `hausFuerNeuenEintrag` gaebe der Kampagne das Haus "crew". Eine Agentur-Kampagne staende im Rudel, und die Trennung waere an genau der Stelle unterlaufen, an der niemand nachsieht. Bauplan, Teil 11: "Nichts im Haus Team Dogi." ZWEI FRAGEN, ZWEI SCHWELLEN -- und das ist Absicht: /api/ich (ZEIGEN) haus !== "crew" Route (SCHREIBEN) haus === "agentur" Der Unterschied betrifft genau einen Fall: `null`. Den gibt es nur auf einer PRUEFADRESSE -- `sitzungLesen` vergibt dort seit dem 24.09.2026 bewusst kein Haus, und die Begruendung dort nennt den Schaden: Als 127.0.0.1 einmal ein Haus bekam, fiel pruef-chat-kanaele mit 13 Fehlschlaegen um, und die naechsten Pruefungen waeren still gruen geblieben, ohne noch etwas zu messen. Eine echte Anfrage hat immer eine der beiden Waende; eine Sitzung zu einer dritten lehnt `sitzungPasstZurAdresse` ohnehin ab. Beim SCHREIBEN wird trotzdem streng gefragt: Ein Eintrag mit `haus = null` waere in BEIDEN Haeusern sichtbar -- genau das, was Teil 11 ausschliesst. WAS ICH DABEI ZWEIMAL FALSCH VERSUCHT HABE Zuerst sollte das Bildwerkzeug ueber die Agenturwand kommen, damit es den Kasten weiter messen kann. Den Host-Kopf beim Durchreichen zu ueberschreiben wirkt nicht -- gemessen: /api/ich meldete weiter `darf: false`, der Wirt blieb "127.0.0.1:4338". Chromium laesst `Host` nicht ueberschreiben. Dann den Namen wirklich aufloesen (--host-resolver-rules). Das funktioniert, bringt aber die Anmeldemaske der echten Wand mit einer Tuer davor, die ein Bildwerkzeug nicht aufmachen soll. Gemessen werden soll die KACHEL, nicht der Zugang. Deshalb bleibt bild-kampagne auf der Pruefadresse -- und genau deshalb fragt /api/ich `!== "crew"` statt `=== "agentur"`. Beide Zeilen tragen jetzt die Begruendung bei sich, damit sie niemand "vereinheitlicht": Das macht entweder die Pruefungen blind oder laesst eine Kampagne ins Rudel. Zwei Gegenproben gefahren, beide schlagen an: Route nimmt jede Wand an -> 2 rot. /api/ich fragt nicht nach dem Haus -> 1 rot. GEPRUEFT: pruef-kampagne 98 -> 99 gruen · bild-kampagne 20 Messungen gruen · pruef-struktur, pruef-haus-trennung 107, pruef-agentur 62, pruef-eventkarte 94, pruef-alle-wege, pruef-schranke, pruef-zeichen 8 Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -264,6 +264,36 @@ kampagneRouter.post("/workspace/api/kampagne/einlesen", async (req, res) => {
|
||||
`keine Leitung (${person.rolle})`);
|
||||
}
|
||||
|
||||
/* ---- Und nur auf der AGENTURADRESSE ---------------------
|
||||
|
||||
Bauplan, Teil 11: "Nichts im Haus Team Dogi."
|
||||
|
||||
WARUM DAS EINE EIGENE ZEILE BRAUCHT: DogFather ist in BEIDEN
|
||||
Haeusern `admin`, und `istLeitung` fragt nur nach der Rolle.
|
||||
Meldet er sich auf crew.dogfather-universe.com an und oeffnet
|
||||
dort `bereich.html?b=agentur`, dann ist er Leitung, der
|
||||
Bereich stimmt -- und `hausFuerNeuenEintrag` gaebe der
|
||||
Kampagne das Haus "crew". Eine Agentur-Kampagne staende
|
||||
damit im Rudel, und die Trennung waere genau an der Stelle
|
||||
unterlaufen, an der sie niemand nachsieht.
|
||||
|
||||
Gefragt wird POSITIV ("ist es die Agentur?") und nicht
|
||||
negativ ("ist es nicht die Crew?"): Ohne Adresse gibt
|
||||
`hausFuerNeuenEintrag` `null` zurueck, und ein Eintrag ohne
|
||||
Haus ist in BEIDEN sichtbar. Fuer die meisten Eintraege ist
|
||||
das die bewusst sichere Richtung -- fuer eine Kampagne waere
|
||||
es das Gegenteil.
|
||||
|
||||
Dasselbe Haus wird unten beim Schreiben benutzt, nicht ein
|
||||
zweites Mal berechnet. */
|
||||
const haus = hausFuerNeuenEintrag(person, "agentur");
|
||||
if (haus !== "agentur") {
|
||||
return schiefgegangen(403,
|
||||
"Kampagnen gehören zur Agentur. Bitte auf "
|
||||
+ "workspace.dogfather-universe.com anmelden.",
|
||||
`falsches Haus: ${haus ?? "ohne Adresse"}`);
|
||||
}
|
||||
|
||||
const text = String(req.body?.text ?? "");
|
||||
if (!text.trim()) {
|
||||
return schiefgegangen(400,
|
||||
@@ -440,11 +470,11 @@ kampagneRouter.post("/workspace/api/kampagne/einlesen", async (req, res) => {
|
||||
kuerzen(regelnText(gelesen.kuer, hinweise)),
|
||||
dringlichkeit,
|
||||
jetzt, person.id,
|
||||
/* NICHT von Hand auf "agentur" gesetzt: Das Haus entscheidet
|
||||
die Adresse, über die jemand hereinkommt. Wer es hier
|
||||
festschreibt, baut die Trennung ein zweites Mal -- und
|
||||
zwei Fassungen derselben Regel laufen auseinander. */
|
||||
hausFuerNeuenEintrag(person, "agentur"),
|
||||
/* NICHT von Hand auf "agentur" gesetzt, sondern dieselbe
|
||||
Angabe, die oben schon ueber die Annahme entschieden
|
||||
hat. Zweimal zu rechnen waeren zwei Fassungen derselben
|
||||
Regel -- und die laufen auseinander. */
|
||||
haus,
|
||||
nummer, link, jetzt, gelesen.pflicht.zone,
|
||||
JSON.stringify(gelesen.auszug));
|
||||
eintragId = Number(lastInsertRowid);
|
||||
|
||||
Reference in New Issue
Block a user