Enhancement
Critical
Major
Detail
Detail
Since a SecurityProvider can be configured in the layout editor for tables and buttons, it would make sense to offer the same for tree tables, grids and tree grids.
Furthermore, the outdated configuration with the selection of only a few predefined names(master, slave and model) should be **hidden** in the GUI for the time being and abolished in the long term, especially since the names only describe shortcuts for paths to the object at which the security is checked.
For this purpose, an **additional** polymorphic configuration should be created, where one implementation of SecurityProvider is directly selected and has a higher priority than the deprecated configuration. One of the implementations should allow navigating to the "security object" via component channels.
Code migration
- After template calls to "com.top_logic/table.template.xml", "com.top_logic/treetable.template.xml" and "com.top_logic/tree.template.xml" look in "*.layout.xml".
- You can find them with the RegExp template="com\.top_logic/(table|tree|treetable)\.template\.xml".
- In these securityProviderClass="" remove.
- Replace values securityProviderClass="securityRoot",`securityProviderClass="model",`securityProviderClass="master " or securityProviderClass="slave " with securityObject="securityRoot",`securityObject="path:model",`securityObject="path:master.currentObject" or securityObject="selection(self())" respectively.
Data migration
Will be done automatically at boot time. For details: Ticket_26117_security_object.migration.xml
Test
E.g. in the demo, edit the Technical Demo > Components > Grid Editable view in design mode. The test is passed if you can directly configure an implementation of SecurityProvider in the Access Control property instead of a SecurityProvider name.