Exposing the relationship between WebScreen Role References and the Roles Entity would allow for dynamic menu generation

On our radar

Use Case: Dynamic Menus & Navigation


In an attempt to build dynamic menus and navigation structures we thought it should be possible by examining each WebScreen in an application to compare the roles allowed to access the screen against the effective roles of the logged-in user.  The concept was simple - if the logged-in user had a role that was allowed to access a screen, include it in the menu.  If not, don't display it in the menu.

Using OutDoc we were able to examine the XML definition of each WebScreen, including the permissions configured for each screen.  Unfortunately, the permissions in the XML are not human readable and use key/value pairs that we were told are internal to the platform and not accessible to customers at this time.  Example:

            <Permission Key="Permission:+vJ_ED47ZUS_7AOSXxpeyg" Role="RoleReference:5egSPRrDFEqkvrxrqXqxjw" />
            <Permission Key="Permission:eeEdNciJekyj89mkhsenrQ" Role="RoleReference:8JxYs4Xhlk6cXvfhFADHDQ" />
            <Permission Key="Permission:ObM8N6lZk0yWkCRRwpMcEg" Role="RoleReference:Xk6YbOt0LEKEp+ehpJbJIQ" />

The example Permission/RoleReference combinations above are not contained in the Roles Entity and therefore we have no way to translate or relate them to the roles in our application.  If we had some way to do this, reusable dynamic menu logic would be relatively easy to implement.

Please provide a means of exposing the roles that are allowed to access a WebScreen!  A simple system action that returns a list of Role.Id,Role.Name would be fine.  GetRolesForWebScreen(ESpace.Id,"MyScreenName")

Created on 16 Feb 2018
Comments (0)