Forum Discussion

menphis21's avatar
menphis21
Helper IV
3 years ago
Solved

Dynamic security rules with specific hierarchy

Hi,

 

I have a table of aging account and also a table of each email of all the employees as below :

ClientAmountManaging ParterPartnerSenior ManagerChairman
A1000XYZXY

Employees tables :

NameEmailRole
X[email protected]Partner

 

i built specifics pages for each kind of roles, Partner, Managing Partners, chairman, etc with different types of kpis.

 

How can i manage with the security rules and also with my data model to allow  each type of role access to  specific pages?

 

I also saw this video but my data model is too complex

How to Implement PAGE-LEVEL SECURITY to hide and show pages based on Permissions // Power BI Guide - YouTube

 

 

Hoping your help

Thank you

 

4 Replies

    • menphis21's avatar
      menphis21
      Helper IV

      Thank you Shaurya ,

       

      But the whole problem is that I have several user fields per line
      so I can't join the Aging table with the users table

      I also tried another option in DAX for depending on the Userprincipalname, it chooses the field it is based on :

      if(CONTAINS(Aging,Aging[Email Chairman],USERPRINCIPALNAME()), Max(Aging[Email Chairman]),
      if(CONTAINS(Aging,Aging[Head of Finance Email],USERPRINCIPALNAME()), Max(Aging[Head of Finance Email]),
      if(CONTAINS(Aging,Aging[Managing Partner email],USERPRINCIPALNAME()), Max(Aging[Managing Partner email]),
      if(CONTAINS(Aging,Aging[Head of email],USERPRINCIPALNAME()), Max(Aging[Head of email]),
      if(CONTAINS(Aging,Aging[Email BI Partner],USERPRINCIPALNAME()), Max(Aging[Email BI Partner]),
      if(CONTAINS(Aging,Aging[Email Manager],USERPRINCIPALNAME()), Max(Aging[Email Manager]),0))))))=USERPRINCIPALNAME()

       

      Thank you for your help

  • Hi,

     Anyone ?

     

    Iam trying also to find a way to user the function filter like that :

    if(CONTAINS(Aging,Aging[Chairman Email],USERPRINCIPALNAME()), filter(Aging,Aging[Chairman Email]=USERPRINCIPALNAME()),
    if(CONTAINS(Aging,Aging[Manager Email],USERPRINCIPALNAME()), filter(Aging,Aging[Manager Email]=USERPRINCIPALNAME()),0))

    but didnt work.

     

    Thank you in advance for your help