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]>
148 lines
6.1 KiB
HTML
148 lines
6.1 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||
<title>Wer sieht was · Creator Workspace</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<meta name="theme-color" content="#06090f" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610032333" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/treff.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202610032333" />
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202610032333" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<div class="schleier" aria-hidden="true"></div>
|
||
|
||
<header class="kopfleiste">
|
||
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
|
||
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="M14.5 5.5 8 12l6.5 6.5" />
|
||
</svg>
|
||
<span class="zurueck-knopf__text">Zurück</span>
|
||
</button>
|
||
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator Workspace</a> · Wer sieht was</span></p>
|
||
<div class="kopfleiste__rechts">
|
||
<span class="wer" id="wer">…</span>
|
||
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="inhalt inhalt--breit">
|
||
|
||
<section class="kopf-zeile">
|
||
<div>
|
||
<p class="marke">Rechte · nur für dich</p>
|
||
<h1 class="titel">Wer sieht was</h1>
|
||
<p class="unterzeile">
|
||
Nicht aufgeschrieben, sondern ausgerechnet – aus derselben Tafel,
|
||
aus der die Schranke ihre Entscheidung holt. Und umstellbar.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite" hidden></p>
|
||
|
||
<!-- Die Leiste sagt, ob etwas von Hand gesetzt ist, und ist der Weg
|
||
zurück. Sie steht OBEN und nicht unter der Tabelle: Wer etwas
|
||
verstellt hat und es zurückdrehen will, sucht nicht erst
|
||
zweihundert Zeilen lang. -->
|
||
<div class="rechte-leiste" id="leiste" hidden></div>
|
||
|
||
<!-- ==================================================================
|
||
WARUM DIESE SEITE ÜBERHAUPT EXISTIERT
|
||
|
||
Filipe: „egal welche Rolle oder Person hinzugefügt wird, soll
|
||
immer nur das sehen, was ich erlaube."
|
||
|
||
Dazu gehört, dass er es NACHSEHEN kann. Eine Regel, die man nur
|
||
glauben kann, ist eine Zusage; eine, die man ansehen kann, ist
|
||
eine Auskunft.
|
||
|
||
Und sie ist eine Gegenprobe: Wenn hier bei einer Rolle plötzlich
|
||
zwanzig Punkte stehen, wo gestern drei waren, sieht man das in
|
||
einer Sekunde. In 74 Rollenabfragen über 20 Module sieht man es
|
||
nie.
|
||
============================================================== -->
|
||
|
||
<section class="treff-abschnitt">
|
||
<h2 class="treff-abschnitt__titel">Wie viele Seiten je Rolle</h2>
|
||
<div class="treff-abschnitt__inhalt">
|
||
<p>
|
||
Das ist die Zahl, um die es geht. Eine neue Rolle startet bei
|
||
<strong>null</strong> – sie bekommt nichts, bis es jemand einträgt.
|
||
</p>
|
||
</div>
|
||
<ul class="rechte-zahlen" id="zahlen">
|
||
<li class="leise">wird geladen …</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section class="treff-abschnitt">
|
||
<h2 class="treff-abschnitt__titel">Die ganze Tafel</h2>
|
||
<div class="treff-abschnitt__inhalt">
|
||
<p>
|
||
Ein Punkt heißt: diese Rolle darf diese Seite öffnen. Leer heißt
|
||
nein – und zwar auch dann, wenn niemand je darüber nachgedacht hat.
|
||
Das ist der Unterschied zu vorher.
|
||
</p>
|
||
<p>
|
||
<strong>Ein Klick stellt um</strong>, und er wird sofort gespeichert –
|
||
kein Knopf am Ende, an dem eine halbe Änderung verlorengeht. Ein
|
||
heller Rahmen heißt: <em>dieses Feld ist von Hand gesetzt</em> und
|
||
weicht vom Grundstand im Code ab.
|
||
</p>
|
||
<p class="leise">
|
||
Drei Felder sind fest: Du kannst dir selbst die Rechte-, die Personen-
|
||
und die Startseite nicht wegnehmen – sonst käme niemand mehr an die
|
||
Rechte, an die Zugänge oder auf die Startseite.
|
||
</p>
|
||
</div>
|
||
<div class="rechte-tafel" id="tafel" aria-busy="true">
|
||
<p class="leise">wird geladen …</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="treff-abschnitt">
|
||
<h2 class="treff-abschnitt__titel">Ohne Anmeldung</h2>
|
||
<div class="treff-abschnitt__inhalt">
|
||
<p>
|
||
Diese Seiten sind offen – man kann sich schlecht anmelden, wenn die
|
||
Anmeldeseite eine Anmeldung verlangt. Jede andere Seite ist zu.
|
||
</p>
|
||
<ul class="regel-liste" id="offen"><li class="leise">wird geladen …</li></ul>
|
||
</div>
|
||
</section>
|
||
|
||
</main>
|
||
|
||
<!-- WER kopf.js LAEDT, MUSS AUCH wahl.js LADEN (Regel seit 07.09.2026).
|
||
|
||
Der Umschalter "Meine Sicht" in der Kopfleiste ist ein selbst
|
||
gebautes Bedienelement; dahinter liegt ein unsichtbares Systemfeld
|
||
fuer Vorleseprogramme. Ohne wahl.js faellt kopf.js auf dieses Feld
|
||
zurueck -- ein grauer Kasten von 92 x 19 Pixeln mit weisser
|
||
Schrift, mitten in einer dunklen Leiste.
|
||
|
||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||
die seit dem 07.09. jede Seite danach absucht. -->
|
||
<script src="assets/js/meldung.js?v=202610032333" defer></script>
|
||
<script src="assets/js/nachfrage.js?v=202610032333" defer></script>
|
||
<script src="assets/js/wahl.js?v=202610032333" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202610032333" defer></script>
|
||
<script src="assets/js/installieren.js?v=202610032333" defer></script>
|
||
<script src="assets/js/kopf.js?v=202610032333" defer></script>
|
||
<script src="assets/js/glocke.js?v=202610032333" defer></script>
|
||
<script src="assets/js/holen.js?v=202610032333" defer></script>
|
||
<script src="assets/js/rechte.js?v=202610032333" defer></script>
|
||
</body>
|
||
</html>
|