Keine Mischung mehr -- Team Dogi nur noch bei Team Dogi
Filipe: "ich will dass du im workspace alles von team dogi weg nimmst.
nur was ich im kalender eintrage soll ich im workspace sehen und im
team dogi. aber die kacheln von team dogi soll ich nur bei team dogi
sehen und die von workspace nur bei workspace bitte. ich will keine
mischung mehr von kacheln. wie gesagt nur die der kalender soll
verbunden sein von dogfather sonst nichts."
GEMESSEN, WIE SCHLIMM ES WAR: Auf der Agenturadresse bekam DogFather
0 eigene Kacheln ueber die Schnittstelle und 17 fremde -- Dein Team,
Ideen-Board, Rueckmeldung, Wer sieht was, Entwicklung, Werdegang,
Talente und den ganzen Treff samt Moderation. Zwei Betriebe auf einer
Seite.
Das Bittere daran: Dieselbe Datei hatte den Fehler fuer die ANDERE
Richtung am 10.09. schon erkannt und behoben ("Fuenfundzwanzig
Kacheln, von denen zwei Drittel Creator, Scouts und Agentur betreffen,
waeren dort Fenster in ein Haus, in dem er gerade nicht ist"). Nur
andersherum stand es weiter so.
DIE AUSNAHME BRAUCHTE NICHTS: Nachgemessen filtern die Terminabfragen
in workspace-kalender.js NICHT nach Haus. Was er eintraegt, steht
ohnehin auf beiden Adressen. Die Verbindung, die er will, existierte
schon -- sie musste nur nicht zerschnitten werden.
STATT SIEBZEHN BRETTERN STEHT DORT EINE TUER. Ohne sie waere von der
Agenturadresse aus kein Weg mehr zu Team Dogi sichtbar; er muesste die
Adresse tippen. Das ist die Sorte Sackgasse, die dieses Haus nicht
baut. Eine Tuer ist keine Mischung: Sie zeigt kein Brett, sie geht
hinueber. Und sie kommt vom Server, nur fuer `admin` -- in keiner
ausgelieferten Datei steht sie.
MEIN ERSTER ENTWURF GAB SIE AUCH DER RECHTEN HAND UND DER MODERATION.
pruef-modi-checkliste hat es sofort gemeldet: "Modi bekommt 1
Zusatzkachel(n), erwartet keine". Wer NUR zu Team Dogi gehoert, hat
auf der Agenturadresse nichts zu suchen -- die Tuer waere dort seine
einzige Kachel gewesen, also eine Seite, die aus nichts als einem
Ausgang besteht.
VIER PRUEFUNGEN VERLANGTEN DANACH DIE ALTE WELT. Keine davon war ein
Mangel; alle vier haben am falschen Ort gesucht:
pruef-haus-trennung verlangte woertlich, dass die Team-Kachel AUCH
auf der Agenturadresse steht. Sie prueft jetzt die Trennung in
beide Richtungen -- kein Brett von Team Dogi drueben, aber die
eine Tuer -- und leitet die Namen aus der Antwort von crew. ab,
statt sie abzuschreiben.
pruef-start-ansicht zaehlte acht Gruppennamen in fester
Reihenfolge. Gemeint war eine Ordnung ("die Community steht ganz
unten, denn dort stehen Namen und Saetze von Zuschauern"), und
die wird jetzt als Regel geprueft -- bedingt, mit drittem Ausgang
auf Adressen, wo es diese Gruppen gar nicht gibt.
pruef-treff und pruef-rueckmeldung fragten ueber die Agenturadresse
nach Brettern, die dort nicht mehr stehen. Sie fragen jetzt dort,
wo diese Bretter zuhause sind.
EINE HALBE STUNDE WAERE DABEI FAST VERLOREN GEGANGEN: `fetch` kann den
Host-Kopf nicht setzen -- er ist ein verbotener Kopfzeilenname und
wird STILLSCHWEIGEND verworfen. Die Anmeldung ueber die Crew-Wand
genuegt nicht; jede einzelne Abfrage braucht die Adresse. Deshalb geht
die Messung jetzt ueber http.request, so wie es `anmelden()` in
derselben Datei laengst tut.
pruef-haus-trennung 74/0 · pruef-modi-checkliste 75/0 · pruef-treff
72/0 · pruef-rueckmeldung 30/0 · pruef-start-ansicht 153/0 ·
pruef-haus-seiten 34/0 · pruef-entwicklung 46/0 · pruef-befinden
113/0 · pruef-rechte-umstellen 46/0
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+89
-58
@@ -34,7 +34,7 @@ import { darfSeite, OHNE_ANMELDUNG, seitenFuer } from "./rechte.js";
|
||||
import { treffTabellen, treffSperreLesen, MINDESTALTER } from "./treff-tabellen.js";
|
||||
import { hilfeTabellen } from "./hilfe-tabellen.js";
|
||||
import { sitzungPasstZurAdresse, istOhneModiAdresse, istCrewAdresse, istPruefAdresse, AUSSEN_ROLLEN,
|
||||
TEAM_DOGI_ROLLEN } from "./crew-adresse.js";
|
||||
TEAM_DOGI_ROLLEN, CREW_ADRESSE } from "./crew-adresse.js";
|
||||
/* Weitergereicht, damit die Fachmodule sie wie alles andere aus
|
||||
workspace.js beziehen und nicht wissen muessen, wo sie wohnt. */
|
||||
export { TEAM_DOGI_ROLLEN };
|
||||
@@ -1439,6 +1439,15 @@ export function darfTelefonieren(person) {
|
||||
function nurOffeneKacheln(liste, person) {
|
||||
if (!Array.isArray(liste) || !person) return liste;
|
||||
return liste.filter((k) => {
|
||||
/* EINE KACHEL, DIE HINAUSFUEHRT, HAT HIER KEINE SEITE (21.09.2026).
|
||||
|
||||
Unten wird aus dem Ziel ein Pfad gebaut ("/workspace/" + ziel)
|
||||
und die Rechtetafel gefragt. Bei einer vollstaendigen Adresse --
|
||||
der Tuer zu Team Dogi -- kaeme dabei
|
||||
"/workspace/https://crew..." heraus, das steht in keiner Tafel,
|
||||
und die Kachel waere lautlos verschwunden. Lautlos ist das
|
||||
Schlimme daran: Man sucht den Fehler dann bei der Rolle. */
|
||||
if (k?.aussen) return true;
|
||||
const ziel = String(k?.ziel || "");
|
||||
if (!ziel) return true;
|
||||
const pfad = "/workspace/" + ziel.split("?")[0];
|
||||
@@ -2005,71 +2014,93 @@ const TEAM_GRUPPE = {
|
||||
gruppeNach: "Team & System",
|
||||
};
|
||||
|
||||
const ZUSATZ_BEREICHE = {
|
||||
admin: [
|
||||
{ ...TEAM_GRUPPE, ...EINGANG_KACHEL, gruppe: TEAM_GRUPPE.gruppe,
|
||||
gruppeUnter: TEAM_GRUPPE.gruppeUnter },
|
||||
{
|
||||
...TEAM_GRUPPE,
|
||||
name: "Ideen-Board", unter: "Gesammelt und nach Dringlichkeit sortiert",
|
||||
zeichen: "content", ton: 23, ziel: "bereich.html?b=ideen", szene: "portal",
|
||||
},
|
||||
/* DIESELBE Kachel wie im Team, nur in seiner Gruppe. Name, Ton und
|
||||
Ziel sind Wort fuer Wort dieselben -- wer sie hier anders nennt,
|
||||
hat zwei Namen fuer eine Sache, und das Team liest den einen,
|
||||
DogFather den anderen. */
|
||||
{
|
||||
...TEAM_GRUPPE,
|
||||
name: "Rückmeldung", unter: "Was gut läuft, was hakt – in beide Richtungen",
|
||||
zeichen: "reports", ton: 25, ziel: "bereich.html?b=rueckmeldung", szene: "lounge",
|
||||
},
|
||||
/* Eine eigene Gruppe, direkt hinter Team Dogi: Was ueber Menschen
|
||||
aufgeschrieben wird, steht nicht zwischen den taeglichen
|
||||
Werkzeugen. */
|
||||
/* WER SIEHT WAS (11.09.2026).
|
||||
/* =====================================================================
|
||||
KEINE MISCHUNG MEHR (21.09.2026)
|
||||
|
||||
Filipe: "egal welche Rolle oder Person hinzugefuegt wird, soll
|
||||
immer nur das sehen, was ich erlaube."
|
||||
Filipe: "ich will dass du im workspace alles von team dogi weg
|
||||
nimmst. nur was ich im kalender eintrage soll ich im workspace sehen
|
||||
und im team dogi. aber die kacheln von team dogi soll ich nur bei
|
||||
team dogi sehen und die von workspace nur bei workspace bitte. ich
|
||||
will keine mischung mehr von kacheln. wie gesagt nur die der kalender
|
||||
soll verbunden sein von dogfather sonst nichts."
|
||||
|
||||
Dazu gehoert, dass er es nachsehen kann. Die Seite rechnet die
|
||||
Uebersicht aus derselben Tafel, aus der die Schranke ihre
|
||||
Entscheidung holt (rechte.js) -- eine von Hand gepflegte
|
||||
Uebersicht waere eine zweite Wahrheit, und ausgerechnet die, der
|
||||
man glaubt.
|
||||
---------------------------------------------------------------------
|
||||
WAS HIER BIS HEUTE STAND
|
||||
|
||||
IN "Team & System" UND NICHT BEI DEN PERSONEN: Es geht nicht um
|
||||
Menschen, sondern um das Haus. */
|
||||
{
|
||||
...TEAM_GRUPPE, ...RECHTE_KACHEL,
|
||||
gruppe: TEAM_GRUPPE.gruppe, gruppeUnter: TEAM_GRUPPE.gruppeUnter,
|
||||
},
|
||||
{ ...ENTWICKLUNG_KACHEL, gruppeNach: TEAM_GRUPPE.gruppe },
|
||||
{ ...WERDEGANG_KACHEL, gruppeNach: TEAM_GRUPPE.gruppe },
|
||||
{ ...TALENTE_KACHEL, gruppeNach: TEAM_GRUPPE.gruppe },
|
||||
/* DER TREFF -- GANZ UNTEN, UND ZWAR ABSICHTLICH.
|
||||
Eine Liste ZUSATZ_BEREICHE mit siebzehn Kacheln, die auf der
|
||||
AGENTURADRESSE an DogFathers Seite gehaengt wurden: Dein Team,
|
||||
Ideen-Board, Rueckmeldung, Wer sieht was, Entwicklung, Werdegang,
|
||||
Talente -- und der ganze Treff samt Moderation. Nachgemessen am
|
||||
21.09.2026 bekam er dort 0 eigene Kacheln und 17 fremde; auf der
|
||||
Team-Adresse 30, in sechs Gruppen, aus beiden Haeusern.
|
||||
|
||||
Filipe zu den beiden Gruppen darueber: "das sind private
|
||||
informationen von meiner community." Dasselbe gilt hier, nur
|
||||
noch deutlicher: Im Treff stehen Namen und Saetze von Leuten,
|
||||
die nichts mit der Agentur zu tun haben.
|
||||
Der Gedanke dahinter war gut gemeint: Er soll ueberall an alles
|
||||
herankommen. Die Wirkung war eine Seite, auf der zwei Betriebe
|
||||
uebereinanderliegen -- und zwar genau der Zustand, den dieselbe
|
||||
Datei am 10.09. fuer die andere Richtung schon als Fehler erkannt
|
||||
hatte ("Fuenfundzwanzig Kacheln, von denen zwei Drittel Creator,
|
||||
Scouts und Agentur betreffen, waeren dort Fenster in ein Haus, in
|
||||
dem er gerade nicht ist").
|
||||
|
||||
Ohne `gruppeNach` haengt eine Gruppe hinten an -- genau richtig.
|
||||
Wer sich den Bildschirm teilt oder jemandem ueber die Schulter
|
||||
schauen laesst, hat sie dann nicht als Erstes im Blick. */
|
||||
...TREFF_BEREICHE,
|
||||
TREFF_MODERATION_KACHEL,
|
||||
],
|
||||
};
|
||||
---------------------------------------------------------------------
|
||||
DIE EINE AUSNAHME IST DER KALENDER -- UND SIE BRAUCHT NICHTS
|
||||
|
||||
/* NICHT AUF DER TEAM-ADRESSE (10.09.2026). Dort liefert bereicheFuer()
|
||||
ohnehin schon die Kacheln des Teams -- Eingang, Ideen-Board und
|
||||
Rueckmeldung stuenden sonst zweimal auf der Seite, einmal in
|
||||
"Taeglich" und einmal in "Team Dogi". Zwei gleiche Kacheln sind
|
||||
schlimmer als eine fehlende: Man klickt die falsche und sucht den
|
||||
Unterschied. */
|
||||
Nachgemessen: Die Terminabfragen in workspace-kalender.js filtern
|
||||
NICHT nach Haus. Was er eintraegt, steht ohnehin auf beiden
|
||||
Adressen. Die Verbindung, die er will, existiert also bereits; sie
|
||||
musste nicht gebaut, sondern nur nicht zerschnitten werden.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
EINE TUER IST KEINE MISCHUNG
|
||||
|
||||
Ohne Ersatz waere von der Agenturadresse aus kein Weg mehr zu Team
|
||||
Dogi sichtbar -- er muesste die Adresse tippen. Das ist die Sorte
|
||||
Sackgasse, die dieses Haus nicht baut. Statt siebzehn Brettern steht
|
||||
dort jetzt EINE Kachel, die hinuebergeht.
|
||||
|
||||
SIE VERRAET NICHTS: Sie kommt vom Server und nur fuer die, die zu
|
||||
Team Dogi gehoeren. In keiner ausgelieferten Datei steht sie, und
|
||||
ein Manager bekommt sie nie zu sehen -- genau wie bei den Kacheln,
|
||||
die sie ersetzt.
|
||||
===================================================================== */
|
||||
export function zusatzBereicheFuer(person) {
|
||||
/* Auf der Team-Adresse liefert bereicheFuer() ohnehin die Kacheln des
|
||||
Teams. Eine Tuer zu dem Haus, in dem man schon steht, waere ein
|
||||
Knopf, der nichts tut. */
|
||||
if (person?.haus === "crew") return [];
|
||||
return ZUSATZ_BEREICHE[person?.rolle] || [];
|
||||
|
||||
/* NUR DOGFATHER UND VANVAN -- also `admin`.
|
||||
|
||||
Der erste Entwurf gab die Tuer auch an TEAM_DOGI_ROLLEN (die
|
||||
rechte Hand und die Moderation). Das war falsch, und pruef-modi
|
||||
-checkliste hat es sofort gemeldet: "Modi bekommt 1
|
||||
Zusatzkachel(n), erwartet keine".
|
||||
|
||||
WARUM ES FALSCH IST: Wer NUR zu Team Dogi gehoert, hat auf der
|
||||
Agenturadresse gar nichts zu suchen -- die Tuer waere dort seine
|
||||
einzige Kachel, also eine Seite, die aus nichts als einem Ausgang
|
||||
besteht. Und sie wuerde eine Adresse nennen, die auf dieser Seite
|
||||
niemand nennen soll.
|
||||
|
||||
`admin` ist der einzige Fall, der wirklich zwei Haeuser hat. */
|
||||
if (person?.rolle !== "admin") return [];
|
||||
|
||||
return [{
|
||||
gruppe: "Team Dogi",
|
||||
gruppeUnter: "Das andere Haus \u2014 eigene Seite, eigene Daten",
|
||||
name: "Zu Team Dogi",
|
||||
unter: "Der Treff, das Team und die Moderation \u2014 auf ihrer eigenen Adresse",
|
||||
zeichen: "hinaus",
|
||||
ton: 40,
|
||||
szene: "portal",
|
||||
ziel: CREW_ADRESSE + "/workspace/start.html",
|
||||
/* AUSSEN heisst: Diese Kachel fuehrt aus dem Haus hinaus. Ohne das
|
||||
Merkmal wuerde nurOffeneKacheln() sie wegfiltern -- es baut aus
|
||||
dem Ziel einen Pfad ("/workspace/" + ziel) und fragt die
|
||||
Rechtetafel. Bei einer vollstaendigen Adresse kommt dabei
|
||||
Unsinn heraus, und die Kachel verschwaende lautlos. */
|
||||
aussen: true,
|
||||
}];
|
||||
}
|
||||
|
||||
/* scrypt-Parameter. N=2^15 braucht auf diesem Server rund 150 ms — spürbar
|
||||
|
||||
Reference in New Issue
Block a user