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:
@@ -37,7 +37,24 @@ express.response.cookie = function (n, w, o) {
|
||||
};
|
||||
await import("./index.js");
|
||||
await new Promise((r) => setTimeout(r, 1200));
|
||||
const BASIS = `http://127.0.0.1:${PORT}`;
|
||||
/* WARUM HIER 127.0.0.1 STEHT UND NICHT DIE AGENTURWAND
|
||||
(gemessen und wieder zurueckgebaut, 07.10.2026).
|
||||
|
||||
Versucht wurde beides. Der Host-Kopf laesst sich in Chromium
|
||||
nicht ueberschreiben (gemessen: /api/ich meldete weiter
|
||||
`darf: false`, der Wirt blieb "127.0.0.1"), und laesst man den
|
||||
Namen wirklich aufloesen, kommt die Anmeldemaske der echten Wand
|
||||
-- mit einer Tuer davor, die dieses Werkzeug nicht aufmachen
|
||||
soll. Gemessen werden soll die KACHEL, nicht der Zugang.
|
||||
|
||||
Deshalb bleibt es bei der Pruefadresse. Dort vergibt
|
||||
`sitzungLesen` bewusst KEIN Haus (24.09.2026), und `/api/ich`
|
||||
fragt genau deshalb `haus !== "crew"` statt `=== "agentur"`:
|
||||
Der Kasten ist hier sichtbar und damit messbar.
|
||||
|
||||
Dass er auf der CREW-Adresse verschwindet, misst
|
||||
pruef-kampagne mit echten Host-Koepfen -- das geht ohne
|
||||
Browser und ist dort besser aufgehoben. */const BASIS = `http://127.0.0.1:${PORT}`;
|
||||
|
||||
const { DatabaseSync } = await import("node:sqlite");
|
||||
const { scryptSync, randomBytes } = await import("node:crypto");
|
||||
@@ -65,11 +82,23 @@ const pw = await import("file:///C:/Users/qciga/Documents/Obelix/Analyse/node_mo
|
||||
const browser = await pw.chromium.launch();
|
||||
const fehlerAufSeite = [];
|
||||
|
||||
|
||||
const anmelden = async (seite, rolle, code) => {
|
||||
await seite.goto(BASIS + "/workspace/", { waitUntil: "networkidle" });
|
||||
await seite.click(`.rolle[data-rolle="${rolle}"]`);
|
||||
await seite.fill("#code", code);
|
||||
await seite.click("button[type=submit]");
|
||||
/* DEN KNOPF DIREKT AUSLOESEN, nicht ueber die Maus.
|
||||
|
||||
page.click wartet darauf, dass das Element "visible, enabled and
|
||||
stable" ist -- und auf der echten Agenturwand lief es dort in die
|
||||
30-Sekunden-Frist. Die Anmeldeseite bewegt sich dauerhaft (die
|
||||
Buehne atmet), also wird "stable" nie erreicht. Auf 127.0.0.1 war
|
||||
das nie aufgefallen, weil dort eine andere Szene laeuft.
|
||||
|
||||
Gemessen wird hier die KACHEL, nicht die Anmeldemaske -- der
|
||||
direkte Klick ist deshalb kein Umgehen einer Pruefung, sondern
|
||||
der Weg zum eigentlichen Messgegenstand. */
|
||||
await seite.$eval("button[type=submit]", (b) => b.click());
|
||||
await seite.waitForURL("**/start.html", { timeout: 25000 });
|
||||
};
|
||||
|
||||
@@ -107,6 +136,12 @@ async function messen(breite, hoehe, name) {
|
||||
await seite.waitForTimeout(1600);
|
||||
|
||||
console.log(`\n=== ${name} (${breite} px) ===`);
|
||||
const ichSagt = await seite.evaluate(async () => {
|
||||
const a = await fetch("/workspace/api/ich", { credentials: "same-origin" });
|
||||
const j = await a.json().catch(() => ({}));
|
||||
return { rolle: j.rolle, darf: j.darf_kampagne_einlesen, wirt: location.host };
|
||||
});
|
||||
console.log(" /api/ich: " + JSON.stringify(ichSagt));
|
||||
const mass = await seite.evaluate(() => {
|
||||
const k = document.getElementById("kampagneholen");
|
||||
if (!k || k.hidden) return { da: false };
|
||||
|
||||
Reference in New Issue
Block a user