Quantcast
Channel: Microsoft Identity Manager forum
Viewing all articles
Browse latest Browse all 7443

Dynamic RCDC (Dynamic TABs and Content based on Requestor (Viewer of Objects) Permissions

$
0
0

I’m sure everyone has seen the Disappearing TAB for the RCDC which is based on or rather controlled by a the actual object being viewed having a Boolean attribute set. This solution will work for some instances but has potential issues if the Boolean attribute is not defined and or is null.

Below is a solution that Dynamically Changes the Visibility of a TAB and its contents or individual sections within a TAB depending on what SET a User is a part of.

A custom attribute is still needed which is bound to the User Object Resource which has been given read permission to an MPR that is associated with a specific Set.

Example 1 shows how to hide a section within a TAB but not the whole TAB

Example 2 Shows how to hide an entire TAB and its contents.

Note: in both examples the attribute isHero is what actually controls the visibility of this section in the RCDC. As long as the permission granting MPR gives permission to this specific attribute, anyone within the requestor set associated with this MPR will be able to view this section or TAB on the users in the associated target set in the MPR.

Example1

<my:Grouping my:Name="MemberOfDistributionGroup" my:Caption="Member Of" my:Enabled="true" my:Visible="true">
   <my:Control my:Name="GroupMemberOfDG" my:TypeName="UocListView" my:ExpandArea="true" my:Caption="Distribution Groups">
        <my:Properties>
          <my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,Email,Domain,DisplayedOwner" />
          <my:Property my:Name="EmptyResultText" my:Value="There are no groups according to the filter definition." />
          <my:Property my:Name="PageSize" my:Value="20" />
          <my:Property my:Name="ShowTitleBar" my:Value="true" />
          <my:Property my:Name="ShowActionBar" my:Value="false" />
          <my:Property my:Name="ShowPreview" my:Value="false" />
          <my:Property my:Name="ShowSearchControl" my:Value="false" />
          <my:Property my:Name="EnableSelection" my:Value="false" />
          <my:Property my:Name="SingleSelection" my:Value="false" />
          <my:Property my:Name="ItemClickBehavior" my:Value=" ModelessDialog " />
          <my:Property my:Name="ListFilter" my:Value="/Group[(Type='Distribution') and ((ComputedMember='%ObjectID%') or (ExplicitMember='%ObjectID%'))]" />
        </my:Properties>
      </my:Control>
     <my:Control my:Name="GroupMemberOfSG" my:TypeName="UocListView" my:ExpandArea="true" my:Caption="Security Groups" my:RightsLevel="{Binding Source=rights, Path=isHero}">
        <my:Properties>
          <my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,Email,Domain,DisplayedOwner" />
          <my:Property my:Name="EmptyResultText" my:Value="There are no groups according to the filter definition." />
          <my:Property my:Name="PageSize" my:Value="20" />
          <my:Property my:Name="ShowTitleBar" my:Value="true" />
          <my:Property my:Name="ShowActionBar" my:Value="false" />
          <my:Property my:Name="ShowPreview" my:Value="false" />
          <my:Property my:Name="ShowSearchControl" my:Value="false" />
          <my:Property my:Name="EnableSelection" my:Value="false" />
          <my:Property my:Name="SingleSelection" my:Value="false" />
          <my:Property my:Name="ItemClickBehavior" my:Value=" ModelessDialog " />
          <my:Property my:Name="ListFilter" my:Value="/Group[(Type='Security') and ((ComputedMember='%ObjectID%') or (ExplicitMember='%ObjectID%'))]" />
        </my:Properties>
      </my:Control>
    </my:Grouping>

Example 2

    <my:Grouping my:Name="MemberOfDistributionGroup" my:Caption="Member Of" my:Enabled="true" my:Visible="true">
   <my:Control my:Name="GroupMemberOfDG" my:TypeName="UocListView" my:ExpandArea="true" my:Caption="Distribution Groups">
        <my:Properties>
          <my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,Email,Domain,DisplayedOwner" />
          <my:Property my:Name="EmptyResultText" my:Value="There are no groups according to the filter definition." />
          <my:Property my:Name="PageSize" my:Value="20" />
          <my:Property my:Name="ShowTitleBar" my:Value="true" />
          <my:Property my:Name="ShowActionBar" my:Value="false" />
          <my:Property my:Name="ShowPreview" my:Value="false" />
          <my:Property my:Name="ShowSearchControl" my:Value="false" />
          <my:Property my:Name="EnableSelection" my:Value="false" />
          <my:Property my:Name="SingleSelection" my:Value="false" />
          <my:Property my:Name="ItemClickBehavior" my:Value=" ModelessDialog " />
          <my:Property my:Name="ListFilter" my:Value="/Group[(Type='Distribution') and ((ComputedMember='%ObjectID%') or (ExplicitMember='%ObjectID%'))]" />
        </my:Properties>
      </my:Control>
   <my:Grouping my:Name="MemberOfSecurityGroup" my:Caption="SG" my:Visible="{Binding Source=rights, Path=isHero}">
   <my:Control my:Name="GroupMemberOfSG" my:TypeName="UocListView" my:Caption="Security Groups" my:RightsLevel="{Binding Source=rights, Path=isHero}">
        <my:Properties>
          <my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,Email,Domain,DisplayedOwner" />
          <my:Property my:Name="EmptyResultText" my:Value="There are no groups according to the filter definition." />
          <my:Property my:Name="PageSize" my:Value="20" />
          <my:Property my:Name="ShowTitleBar" my:Value="true" />
          <my:Property my:Name="ShowActionBar" my:Value="false" />
          <my:Property my:Name="ShowPreview" my:Value="false" />
          <my:Property my:Name="ShowSearchControl" my:Value="false" />
          <my:Property my:Name="EnableSelection" my:Value="false" />
          <my:Property my:Name="SingleSelection" my:Value="false" />
          <my:Property my:Name="ItemClickBehavior" my:Value=" ModelessDialog " />
          <my:Property my:Name="ListFilter" my:Value="/Group[(Type='Security') and ((ComputedMember='%ObjectID%') or (ExplicitMember='%ObjectID%'))]" />
        </my:Properties>
      </my:Control>
    </my:Grouping>

Anthony Marsiglia


Viewing all articles
Browse latest Browse all 7443

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>