In this post I’m outlining how to setup a report that enables users to navigate to individual pages based on the logged in user. Users should only have access to their tabs.
Why would you do this? For context an example scenario could be providing call statistics per call taker.
Add a caveat I would probably create one table / page and use row level security to return what is relevant to the logged in user. But in the example, I was helping someone with they were maintaining information in different tabs in excel manually, so needed the following simple solution without redesigning what they were doing.
Step 1:
Create a table with the list of users and their email addresses. I called this table “Navigation”. Just create via the enter data.
- One column has people’s email addresses.
- Other name of the pages you want to go to

Step 2:
Hide the user specific pages. Only page to show is the home screen one.

Step 3:
Create a button on the home screen – this will send people to the correct tab based who is viewing the report.

Step 4:
Set the action on the button to page navigation and use the first page listed in the table we created above. This will default to the logged in user when we apply Row Level Security (RLS).

Step 5:
Create the row level security group on that navigation table. This will hide all rows except for the username / page name that the person should see based on their email address.
Under Modelling, select Manage Roles, then click on new to create a role.
- I called this Page Navigation
- Then select the Navigation table and choose “Switch to DAX Editor”.

In the dax editor past in this: [User] == USERPRINCIPALNAME()
This returns the name of the user that is logged in in the service (email address). I called this column user (which is this [User]).

Can test this works in desktop using view as. Enter an email address in other user and click on the role we just created in Page Navigation. This will filter the table, as per below I’m only showing Joe Blogg now.
So, clicking on the button will just take me to the page with the name Joe Blogg now.

Step 6:
Publish this to your workspace and click on the three dots for your dataset and select Security.

Need to add the people to the row level security group we created and save it.

In the same screen if you click on the three dots need the role we created when hover over it, can test it works.

Can change email addresses to test out different views. Note if you haven’t added the person to the row level security group then they will just errors (no access).

In desktop if you want a simple way to see who is the logged in user. Just create the following measure and drag it into your report into a table.

This will return the logged in username.
