Zeroic
2
This is a good question and here is something that we do at Zeroic.
Suppose you have a Dashboard and it’s a Single-page Application, we have the menu items as an Option Set called Menu OS. Now Menu OS can contain entries like Home, Invoices, Account etc.
At the same time, we have an Option Set called Role OS containing Admin, Sales, Inventory etc and the User table has an attribute called Role which links to this.
On the Dashboard, we add a RepeatingGroup for the menu items and set the source to Menu OS (Get data from option set). Now 2 ways to go about the conditions:
- Add conditions on the RepeatingGroup for each user type to set the source of the same to particular menu items
- Add a list of Menu OS as an attribute to the Role OS to mention the Menu items each role should have, and accordingly set the data source to Current User’s Role’s Menu OS list. In this case, conditions are not required
Finally, make a check always when a user navigates that the Menu OS the user currently is on, should be a part of the RepeatingGroup’s source so that they don’t go to an unauthorized page. Of course, these are just the front-end conditionals, and you’ll accordingly have to add Privacy rules as well to protect your data.
All in all, just have a single dashboard for all your user types.
Hope this approach helps 
1 Like