enhancement
major
minor
major
minor
Nach Umsetzung von #29449 sichern QueryExecutor'en jetzt das Ergebnis von TL-Script-Ausdrücken ab. Das darf bei folgenden QueryExecutor nicht passieren:
- Funktion in com.top_logic.model.search.providers.SecurityObjectByExpression: Hier wird über eine TL-Script-Funktion das Security-Objekt einer Komponente berechnet. Wenn hier ein Objekt ausgerechnet wird, dass der Nutzer nicht sehen darf, wird als Security-Objekt null zurückgegeben. Die Sicht wird dann als technische Sicht interpretiert und es wird keine Security geprüft.
Migration
Achtung: Sichten können nach dem Upgrade unzugänglich werden. Bisher lieferte ein SecurityObjectByExpression null, wenn der Ausdruck ein Objekt berechnete, das der Nutzer nicht sehen durfte. Die betroffene Sicht bzw. das betroffene Kommando wurde dadurch als technische Sicht ohne Security behandelt und war für jeden sichtbar. Nach dem Upgrade wird das Security-Objekt korrekt geliefert und die Berechtigung tatsächlich geprüft. Sichten, die vorher (unbeabsichtigt) für alle offen waren, sind danach nur noch mit passender Rollenzuweisung erreichbar. Die Rollenzuweisungen auf den betroffenen Security-Objekten sind daher zu prüfen.
- Optional: Suche nach "com.top_logic.model.search.providers.SecurityObjectByExpression" oder "security-object-by-expression" in XML-Dateien. Wenn hier nur ein Singleton zurückgegeben wird, sollte der "com.top_logic.tool.boundsec.securityObjectProvider.ModuleSingletonSecurityProvider" benutzt werden: {{{
<securityObject class="com.top_logic.tool.boundsec.securityObjectProvider.ModuleSingletonSecurityProvider"
module="MyModule"
/> }}} für MyModule#ROOT. Für ein anderes Singleton kann das Attribute "singleton-name" gesetzt werden.