enhancement
critical
major
minor
minor
Since a SecurityProvider can be configured in the layout editor for tables and buttons, it would make sense to offer the same capability for tree tables, grids, and tree grids as well.
Furthermore, the outdated configuration—which allows selection only from a few predefined names (master, slave, and model)—should initially be **hidden** in the GUI and phased out in the long term, especially since these names are merely shortcuts for paths to the object on which security is checked.
To this end, an **additional** polymorphic configuration should be created, where a SecurityProvider implementation is selected directly and takes precedence over the outdated configuration. One of the implementations should allow navigation to the “security object” via component channels.
Code Migration
- Search for template calls to "com.top_logic/table.template.xml", "com.top_logic/treetable.template.xml", and "com.top_logic/tree.template.xml" in "*.layout.xml".
- These can be found using the RegExp template="com\.top_logic/(table|tree|treetable)\.template\.xml"
- Remove ` securityProviderClass="" ` from these files.
- Replace the values ` securityProviderClass="securityRoot"`, `securityProviderClass="model"`, `securityProviderClass="master"`, and `securityProviderClass="slave" ` with `securityObject="securityRoot"`, `securityObject="path:model"`,`securityObject="path:master.currentObject" ` or ` securityObject="selection(self())"`
Data Migration
Performed automatically at boot time. For details: Ticket_26117_security_object.migration.xml
Test
For example, in the demo, edit the view Technical Demo > Components > Grid Edibility in design mode. The test is passed if you can configure an implementation of `SecurityProvider` directly in the Access Control property instead of a ` SecurityProvider` name.