Forum Discussion
RLS Dax - IF Don't RLS
Hi,
Just wondering if this is possible,
I have a table of UserID's, CampaignIDs
I want to be able to apply a filter in Manage Roles where if the User does not have any campaigns assigned to their UserID, they can see all campaigns and the RLS is not filtering the table, if they do have campaigns assigned, then they can only see their assigned campaigns?
I've got the evaluation down but i'm not sure it's even possible, it seems to enact the filtering regardless, so
IF (
CALCULATE (
COUNTROWS ( UserReportingGroupsTest ),
'UserReportingGroupsTest'[UserId] = USERNAME (),
'UserReportingGroupsTest'[CampaignID] = BLANK ()
) > 0,
WHAT DO I PUT HERE?,
[UserId] = USERNAME ()
)
Thanks in advance,
Figured it out, it would just be "TRUE()", however that code does not work. Instead I had to create a summary table (Table 2 in the code below) of User ID and a count of Campaigns assigned to them, and then evaluate that table in the RLS DAX.
VAR Calc =
CALCULATETABLE (
SUMMARIZE ( 'Table 2', [CampCount] ),
'Table 2'[UserId] = USERNAME ()
)
RETURN
IF ( SUMX ( Calc, [CampCount] ) > 0, [UserID] = USERNAME (), TRUE () )
1 Reply
- xuxxay88Helper I
Figured it out, it would just be "TRUE()", however that code does not work. Instead I had to create a summary table (Table 2 in the code below) of User ID and a count of Campaigns assigned to them, and then evaluate that table in the RLS DAX.
VAR Calc =
CALCULATETABLE (
SUMMARIZE ( 'Table 2', [CampCount] ),
'Table 2'[UserId] = USERNAME ()
)
RETURN
IF ( SUMX ( Calc, [CampCount] ) > 0, [UserID] = USERNAME (), TRUE () )