Forum Discussion
How to implement the page level filter in a report.
- 1 year ago
To show/hide pages based on user roles like Developer vs. Manager, use page navigation with RLS logic, because Power BI does not natively support page-level security.
Steps to Implement:
1. Create a Role Column in a Table:
- Example: UserAccess table with columns: Username, Role
- Add rows like:
[email protected], Developer
[email protected], Manager
2. Create an RLS Role:- Go to Modeling → Manage Roles
- Use DAX:
[Username] = USERNAME()Read my Article: https://www.linkedin.com/pulse/row-level-security-azepowerbicommunity-gqs4e/?trackingId=fdsyEb0CQhibpWlRSOMeUg%3D%3D
3. Create a Navigation Table:
- List your page names: "Main", "Manager Page", etc.
4. Create a Navigation Button on Main Page:
- Use conditional formatting to show/hide buttons or use a slicer-driven navigation logic:
ShowManagerPage = IF(SELECTEDVALUE(UserAccess[Role]) = "Manager", 1, 0)
5. Hide Sensitive Page:- Remove direct access via tabs.
- Add buttons only visible to Manager role to navigate to the restricted page.
- Use Bookmarks + Selection Pane to manage visibility.
This way, Managers can access all pages, but Developers won’t see buttons leading to restricted content — even though pages technically still exist in the report.
Hi,
Here is how I've implemented a "page level security":
Requirements:
- Two groups of users: Group 1 can see all the pages + page A / Group 2 can see all the pages +page B (instead of A)
Solution:
- Create a new table (in power query) "Pages" with one column "Page" and insert two rows, with the exact names of the pages ("Page A", "Page B")
- Create 2 functions:
- Page A, where column Page = "Page A"
- Page B, where column Page = "Page B"
- Hide the pages A and B
- Insert a button to navigate to your desired page (A or B), based or the logged user, button action = page navigation, using function Field Value, "First Page", First.
- After publishing you report, go to the RLS settings and set up your users according to their permissions