enhancement
major
minor
major
minor
major
#30016
Aufzählungswerte (Klassifikatoren) sind für Benutzer ohne Administratorrechte nicht entdeckbar: Ein Aufzählungs-Attribut kann nicht gesetzt werden
Kontext
Seit #29782 verlangt das Setzen einer Referenz das Recht Entdecken (Discover) auf jedem neu referenzierten Objekt (Update.checkNewTargets, verwendet von update, add und set in TL-Script und von den Formularen der React-Oberfläche über TLObjectOverlay).
Fehler
Ein Klassifikator (Wert einer Aufzählung, TLClassifier) ist ein BoundObject und wird deshalb geprüft. Sein Typ ist die TLEnumeration, keine TLClass. SecurityConfigurationService.getRoles liefert für Objekte, deren Typ keine Klasse ist, keine Rollen, und eine Freigabe (Grant) lässt sich für eine Aufzählung auch nicht konfigurieren (<class name="…"> meldet „is not a TLClass“). Damit kann außer einem Administrator niemand einen Klassifikator entdecken.
Folge: Ein Benutzer ohne Administratorrechte kann kein Aufzählungs-Attribut setzen oder ändern, weder in einem Formular der React-Oberfläche noch per TL-Script. Gemeldet wird „Der Wert von … kann nicht auf ein Objekt gesetzt werden, das Sie nicht entdecken dürfen.“
Beispiel: In der Steueranwendung (tl-factory) kann der Verwalter eines Mandanten die Rolle eines Mitglieds (Aufzählung tl.factory:TenantRole) weder beim Anlegen abweichend vom Standard wählen noch später ändern.
Lösung
- Klassifikatoren sind für jeden Benutzer entdeckbar: Ihre Bezeichnung und die Auswahl der Werte sind Teil des Modells, nicht der Daten.
- Test: Ein Benutzer ohne Administratorrechte setzt ein Aufzählungs-Attribut per TL-Script (update, add) und über ein Formular der React-Oberfläche.