Rechte Hand und DogFather duerfen Aufgaben immer loeschen, in jeder Etappe
Filipe: "ich will noch dass die rechte hand und dogfather bei den
aufgaben immer die option haben aufgaben zu loeschen. die soll es
immer geben in jeder etape."
NACHGEMESSEN STATT ANGENOMMEN, was vorher galt (darfAufgabenVerteilen
&& darfAendern):
DogFather (admin) -> Leitung, konnte schon immer ueberall loeschen.
rechte Hand (hand) -> NUR an Aufgaben, bei denen sie selbst
Erstellerin, Verantwortliche oder Zielperson
war. An allen anderen fehlte der Knopf.
Die Luecke war also allein die rechte Hand -- und sie hing nicht an
der Etappe, sondern an der Zugehoerigkeit. Genau das faellt weg.
ZUR ETAPPE: Der Loeschweg hat auch vorher keinen Status geprueft, und
die Oberflaeche zeigt den Stift an JEDER Karte. Es gab hier nichts
freizuschalten -- die Zusage "in jeder etape" ist jetzt aber
festgenagelt, damit sie niemand mit einer gut gemeinten
Statusbedingung wieder aufhebt.
`istRechteHand` NEU, UND NICHT `istHand`: Letzteres umfasst auch die
LINKE Hand. Haette ich das genommen, haette sie das Recht lautlos
mitbekommen -- im ganzen Haus hat sie durchgaengig das kleinere
Recht, und es waren zwei Rollen genannt, nicht drei. Der Vergleich
`rolle === "hand"` stand bisher VIERMAL verstreut im Haus
(workspace-chat zweimal, workspace-material, workspace-rechte); eine
fuenfte Abschrift waere die naechste, die irgendwann abweicht. Die
vier alten bleiben vorerst unberuehrt -- nebenbei umgebaut waeren sie
vier ungepruefte Rechteaenderungen.
pruef-verteilen 30 -> 42. Darin steht jetzt das GEGENTEIL einer
bisherigen Zeile: "Gegenprobe: eine fremde Aufgabe loescht sie nicht
(403)" war am 25.09. richtig, als der Auftrag "ihre eigenen" hiess.
Sie ist mitgewandert statt stehenzubleiben -- eine Pruefung, die eine
zurueckgenommene Regel weiter verteidigt, haelt die Aenderung auf und
sieht dabei aus wie Sorgfalt.
Alle vier Etappen einzeln (offen, arbeit, review, erledigt), jeweils
mit der Kontrolle, dass die Etappe wirklich steht -- sonst waeren es
in Wahrheit viermal "offen" und die Pruefung gruen, ohne je etwas
anderes gesehen zu haben. Dazu je Etappe die Auskunft an die
Oberflaeche (darf_loeschen), der echte DELETE und ein Blick in die
Datenbank.
GEGENPROBE GEFAHREN: Mit `istHand` statt `istRechteHand` meldet die
Pruefung "die LINKE Hand darf es in keiner (0/4 mal abgelehnt)",
2 Fehler. Sie faengt also genau den Fehler, der am teuersten gewesen
waere.
Gegengemessen: pruef-haerte 20, pruef-aufgabenbrett 49,
pruef-rechtetafel 19, pruef-zuteilung 98, pruef-haus-trennung 100 --
alle 0 Fehler. Das andere Haus ist unberuehrt; "hand" gibt es dort
nicht.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|
||||
import express from "express";
|
||||
import {
|
||||
db, protokolliere, echteIp, sitzungLesen, betreutWo, istLeitung, darfAufgabenVerteilen, darfAufgabenAnlegen, ohneDogFather, heuteLokal, ROLLEN_SORTIERUNG, ROLLEN_GRUPPE, betreuteIds,
|
||||
db, protokolliere, echteIp, sitzungLesen, betreutWo, istLeitung, istRechteHand, darfAufgabenVerteilen, darfAufgabenAnlegen, ohneDogFather, heuteLokal, ROLLEN_SORTIERUNG, ROLLEN_GRUPPE, betreuteIds,
|
||||
externPruefen, externSql, sichtbarePersonenIds, sichtbareCreatorIds,
|
||||
MODI_KATEGORIEN, kategorienFuer, kategoriePersonen,
|
||||
KANAELE, kanaeleFuer,
|
||||
@@ -374,6 +374,38 @@ function darfAendern(person, aufgabe) {
|
||||
ohnehin. Die Zeile ist damit eine Erweiterung, keine Einschraenkung
|
||||
-- nachgewiesen in pruef-aufgaben-loeschen mit einer Gegenprobe. */
|
||||
function darfLoeschen(person, aufgabe) {
|
||||
/* ==== DOGFATHER UND DIE RECHTE HAND: IMMER (03.10.2026) ==========
|
||||
|
||||
Filipe: „ich will noch dass die rechte hand und dogfather bei den
|
||||
aufgaben immer die option haben aufgaben zu loeschen. die soll es
|
||||
immer geben in jeder etape."
|
||||
|
||||
Vorher galt `darfAufgabenVerteilen && darfAendern`. Nachgemessen,
|
||||
was das hiess:
|
||||
|
||||
DogFather (admin) -> Leitung, also schon immer ueberall.
|
||||
rechte Hand (hand) -> NUR an Aufgaben, bei denen sie selbst
|
||||
Erstellerin, Verantwortliche oder
|
||||
Zielperson war. An allen anderen war
|
||||
der Knopf weg.
|
||||
|
||||
Die Luecke war also allein die rechte Hand -- und zwar nicht nach
|
||||
Etappe, sondern nach Zugehoerigkeit. Genau das faellt jetzt weg.
|
||||
|
||||
KEIN STATUS WIRD GEFRAGT, und das ist der zweite Teil des
|
||||
Auftrags („in jeder etape"). Der Loeschweg hat auch vorher keinen
|
||||
Status geprueft; die Oberflaeche zeigt den Stift an JEDER Karte,
|
||||
unabhaengig von offen/arbeit/review/erledigt. Es gibt hier
|
||||
deshalb nichts freizuschalten -- aber es muss auch nie wieder
|
||||
jemand eine Statusbedingung einbauen, und darauf passt
|
||||
pruef-verteilen jetzt in allen vier Etappen auf.
|
||||
|
||||
`istRechteHand` UND NICHT `istHand`: Letzteres umfasst auch die
|
||||
LINKE Hand. Sie steht hier bewusst nicht drin -- im ganzen Haus
|
||||
hat sie das kleinere Recht, und Filipe hat zwei Rollen genannt,
|
||||
nicht drei. Haette ich `istHand` genommen, haette die linke Hand
|
||||
das Recht lautlos mitbekommen. */
|
||||
if (istLeitung(person) || istRechteHand(person)) return true;
|
||||
return darfAufgabenVerteilen(person) && darfAendern(person, aufgabe);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user