This recipe illustrates how to use Service Panel to front end the MIM Portal for managing the manual membership of a portal group.
Prerequisites
- Service Panel, configured with People and Groups virtual silos
- MIM Portal authoritative for groups with manual membership
- Parent Silo set to Active Directory or MIM Metaverse for both People and Groups (if allowing mixed membership)
Strategy Overview
- The membership form captures the group display name and type
- An audience rule limits access on the trigger attribute and on the form to Role: Admin, Role: Service Desk, and Reference: managedBy
- The membership form uses an Identity Table to search People and Groups and add and remove members. The values produced are MIM Portal XPath filters for finding the objects in the Portal to add or remove.
- The Groups virtual silo has a hyperlink to trigger the membership form to "Edit Group Membership"
- A MIM Test Fixture writes the Append and Remove values to the MIM Portal group
- An Identity Panel workflow links the form to the fixture
Form Settings
- Name: EditMembership
- Label: Edit Group Membership
- Icon: group
- Virtual Silo: Groups
- Audience Rules: [ Role: Admin, Role: Service Desk, Reference: managedBy ]
- Form Pages: One form page is defined
- Name: General
- Label: Edit Group Membership
- Next Label: Submit Changes
- Section 1: Group Details
- Section 2: Membership
Group Details Section
- Row 1: Label
- Name:
NameL
- Size: 2
- Text:
Name:
- Visible
- Name:
- Row 1: Label
- Name:
displayName
- Size: 10
- Text:
[Identity.Parent.Attributes.displayName]
- Visible
- Name:
- Row 2: Label
- Name:
typeL
- Size: 2
- Text:
Group Type
- Visible
- Name:
- Row 2: Label
- Name:
groupType
- Size: 10
- Text (presumes "Group Type" attribute on Group virtual silo):
[Identity.Attributes.Group Type]
- Name:
Membership Section
- Row 1: Identity Table
- Name:
Members
- Size: 12
- Virtual Silo Settings:
- Name: People
- Display Attribute: Display Name
- Title Attribute: Job Title
- Name: Groups
- Display Attribute: Display Name
- Title Attribute: Group Type
- Value Rule:
Explanation: If the adding or removing object is a user, generate a /Person Portal XPath filter with account name. If the object is a group, generate a /Group Portal XPath filter with display name.
If( Parent.ObjectType == "user", $"/Person[AccountName='{Parent.Attributes.sAMAccountName}']", $"/Group[DisplayName='{Parent.Attributes.displayName}']" )
- Default Value Attribute:
Member
- Label:
Members
- Name:
Virtual Attribute Settings
There will be a special label virtual attribute to facilitate linking to the form as we don't want to just put a decorator on a membership table
- Name: Edit Membership
- Value Silo: MIM: Portal (make sure it's the direct portal provider and not the portal MA)
- Value Rule (to display only if it's not a criteria group):
If(Attributes.Filter, null, "Edit Group Membership")
- Audience Rules: [ Role: Admin, Role: Service Desk, Reference: managedBy ]
- Detail Decorators
- Position: Replace
- Mode: All
- URL Rule:
ServiceForm("EditMembership", Id)
- In Virtual Silo Grid Display, add the attribute to the Details section below the Members attribute
Fixture Settings
Fixture will use an XPath filter to locate the group to be modified, and will add and remove members using the filters from form.
- Type: Portal Update
- System: (A MIM Portal MIMTest System)
- Name: Edit Membership
- Search Filter:
[$"/Group[DisplayName='{Memo("Data").General.displayName}']"]
- Multivalue Attributes:
- ExplicitMember Append
- Values:
Explanation: Iterate over the adds, and resolve each XPath expression into a Portal Resource ID to be added to the group[Map(Memo("Data").General.Members.Adds, PortalResolve(Value, "Portal"))]
- ExplicitMember Remove
- Values: Single value as
[Map(Memo("Data").General.Members.Deletes, PortalResolve(Value, "Portal"))]
Workflow Settings
The workflow links the form submission to the fixture
- Name: Edit Membership
- Trigger Object Type: Service Form
- Trigger Rule:
And(Name == "EditMembership", Completed)
- Steps:
- Name: Membership
- Type: MIM Test Fixture Step
- Fixture: Edit Membership
- Memos:
- Name: Data
- Value:
[Data]
- Scope: Test
Comments
0 comments
Please sign in to leave a comment.