Die Rechte Hand steht ueber den Modis -- sortiert statt geschrieben

Filipe, mit dem Bildschirmfoto: "rechte hand soll immer ueber modi
stehen bitte."

DIE REIHENFOLGE STAND AN ZWEI STELLEN, und die zweite war falsch
herum: ROLLEN_REIHE hatte die Rechte Hand laengst vor den Modis (und
die SQL-Sortierung leitet sich daraus ab) -- aber `zusatzrollen` in
workspace-personen.js schrieb sie von Hand, und dort kam Modi zuerst.
Genau diese Liste baut die Abschnitte auf der Personenseite und die
zusaetzlichen Knoepfe im Anlegen-Formular.

Das ist an diesem Tag das VIERTE Mal dieselbe Sache: eine Aussage,
zwei Listen, und die zweite ist die, die abweicht. Vorher: der
Zeitraum-Schutz (an einer von drei Stellen), die Dauer-Einheit
(dieselbe), das Recht zum Aufloesen (Liste kannte es, Nachrichtenweg
nicht).

Deshalb wird jetzt SORTIERT und nicht geschrieben: Die Liste geht durch
ROLLEN_REIHE. Wer die Reihenfolge aendern will, aendert sie dort --
und alles andere zieht nach, statt nachgezogen werden zu muessen. Was
in ROLLEN_REIHE nicht vorkommt (heute "gast"/Community), wandert ans
Ende statt stillschweigend nach vorn.

pruef-haus-trennung 63 -> 66. GEPRUEFT WIRD DIE REIHENFOLGE, NICHT DIE
ANWESENHEIT: "beide sind da" waere auch dann gruen gewesen, wenn sie
vertauscht sind -- und genau das war der Fall. Dazu eine Zeile, die
nachweist, dass die Reihenfolge wirklich aus ROLLEN_REIHE kommt und
nicht nur zufaellig stimmt; sonst haette jemand sie auch von Hand
andersherum schreiben koennen: richtig im Ergebnis, falsch im Aufbau,
und beim naechsten Mal wieder auseinander.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-14 14:28:06 +02:00
co-authored by Claude Opus 5
parent 9f277435a5
commit 0207b05da6
31 changed files with 403 additions and 346 deletions
+36
View File
@@ -430,6 +430,42 @@ console.log("=== Personen & Zugaenge ===");
ok(neuWs.status === 201, `auf workspace. geht es (${neuWs.status})`);
}
/* =======================================================================
9b. DIE RECHTE HAND STEHT UEBER DEN MODIS (14.09.2026)
=======================================================================
Filipe, mit dem Bildschirmfoto: "rechte hand soll immer ueber modi
stehen bitte."
Die Reihenfolge stand an ZWEI Stellen: in ROLLEN_REIHE (richtig) und
von Hand in `zusatzrollen` (falsch herum). Dasselbe Muster wie heute
schon dreimal -- eine Aussage, zwei Listen, und die zweite ist die
unvollstaendige. Jetzt wird sortiert, nicht geschrieben.
GEPRUEFT WIRD DIE REIHENFOLGE, NICHT DIE ANWESENHEIT: "beide sind
da" waere auch dann gruen, wenn sie vertauscht sind -- und genau das
war der Fall. */
{
const antwort = await hole("/workspace/api/verwaltung/personen",
{ host: CREW, keks: dogi.keks });
const zusatz = (antwort.daten?.zusatzrollen || []).map((z) => z.wert);
ok(zusatz.includes("hand") && zusatz.includes("modi"),
`beide Rollen stehen in der Liste (${zusatz.join(", ")})`);
ok(zusatz.indexOf("hand") < zusatz.indexOf("modi"),
`die Rechte Hand steht VOR den Modis (${zusatz.join(" -> ")})`);
/* UND SIE FOLGT DER EINEN LISTE. Ohne diese Zeile haette jemand die
Reihenfolge auch von Hand andersherum schreiben koennen -- richtig
im Ergebnis, falsch im Aufbau, und beim naechsten Mal wieder
auseinander. */
const { ROLLEN_REIHE } = await import("./workspace.js");
const erwartet = [...zusatz].sort((a, b) => {
const p = (r) => (ROLLEN_REIHE.indexOf(r) < 0 ? ROLLEN_REIHE.length : ROLLEN_REIHE.indexOf(r));
return p(a) - p(b);
});
ok(JSON.stringify(zusatz) === JSON.stringify(erwartet),
`die Reihenfolge folgt ROLLEN_REIHE (${zusatz.join(", ")})`);
}
/* =======================================================================
10. Eine Rolle aendern -- es gab die Funktion gar nicht
=======================================================================
+22 -1
View File
@@ -309,6 +309,21 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
faellt er dadurch von selbst weg (darfAnlegen filtert dort auf
die Team-Rollen), und genau das ist richtig: Wer dort jemanden
anlegt, meint jemanden aus dem Team. */
/* DIE REIHENFOLGE KOMMT AUS ROLLEN_REIHE, nicht aus dieser Liste
(14.09.2026).
Filipe, mit dem Bildschirmfoto: "rechte hand soll immer ueber
modi stehen bitte." Hier stand Modi zuerst -- ROLLEN_REIHE
hatte die Rechte Hand dagegen laengst vor den Modis, und die
SQL-Sortierung ebenfalls. Eine Aussage, zwei Stellen, und die
zweite war die falsche: dasselbe Muster wie heute schon dreimal.
Sortiert wird deshalb ABGELEITET. Wer die Reihenfolge aendern
will, aendert ROLLEN_REIHE -- und alles andere zieht nach,
statt nachgezogen werden zu muessen.
Was dort NICHT steht (heute: "gast"), wandert ans Ende statt
stillschweigend nach vorn. */
zusatzrollen: [
...(darfAnlegen(req.person).includes("gast")
? [{
@@ -364,7 +379,13 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
+ "privaten Kalender und keine Einzelchats.",
}]
: []),
],
].sort((a, b) => {
const platz = (r) => {
const i = ROLLEN_REIHE.indexOf(r);
return i < 0 ? ROLLEN_REIHE.length : i;
};
return platz(a.wert) - platz(b.wert);
}),
});
} catch (fehler) {
console.error("[workspace] Personen lesen:", fehler?.message);