i guess it should be possible to restrict navigation to any specific view (dashboard one in my case) to a specified role using permissions
if i add a custom navigation item i have to restrict access to it manually in code, can u consider adding permission based not only on xpobjecttype but also based on viewid?
- 16.2.3 : Download official update
With the version 16.2, you can grant or deny access for specific navigation items and groups in the Navigation Permissions tab of the PermissionPolicyRole Detail View.
Thank you creating this suggestion.
At the moment, there is no built-in option to grant a permission for opening a particular dashboard View as our security system is object-based and not View-based by default. However, if objects are shown within Views embedded into a DashboardView, and their respective object types have proper security permissions configured (e.g., to deny read access), then "Protected Content" will be shown for secured values in these Views, so it they are always protected even if one happened to somehow navigate to them.
Currently, you can implement the following good solutions yourself:
1. A custom security permission as shown in the How to hide individual navigation items and groups for certain users article.
2. A WindowController that will deactivated certain navigation items based on the currently logged user as per How to hide a navigation group programmatically.
3. Handle the LoggedOn or UserDifferencesLoaded events of the XafApplication object and iterate through the NavigationItems and customize (e.g., set the IModelNavigationItem > Visible property) the node in the Application Model as per How do we set StartupNavigatonItem dynamically in code when a user is logging in?. You can learn more on this concept at eXpressApp Framework > Concepts > Application Model > Access the Application Model in Code.
How To: Implement a Custom Security Operation that Can be Permitted at the Type Level
How to: Implement Custom Security Objects (Users, Roles, Operation Permissions)