PhenixID

PSD1147 – Linked list custom control

Summary

This PhenixID Solution Document (PSD) is written for PhenixID Identity Manager (IM) 5.4.1 or later.

Use case: You have a dropdown list where you for example can select different companies. If you select for example company PhenixID then that value is send to other drop down-lists in the same form and trigger what values to present.

System Requirements

  • PhenixID IM Web 5.4.1 or later
  • PhenixID IM Configurator 5.4.1 or later

Overview

The basics are that one drop down list can send a value to another drop down list. To support this we have created a new custom control called LinkedListControl.

In IM there is a drop down list called ComboBox, this control is not changed and can still be used.

Configure the LinkedListControl

To explain LinkedListControl I will use the terms parent and child to explain the different settings.
The linked list custom control is called se.nordicedge.controls.lists.LinkedListControl

Explanation of trigger value, -TV-

-TV- stands for trigger value and is something the parent can send to the child. If, in the parent, PhenixID is selected then that value can be send to the child to use.
Example of use:
1. Used in a DN string: -TV- will be replaced with PhenixID
OU=cities,OU=-TV-,OU=IM_LinkedList_Example,DC=phenixid2019,DC=local
2. Used with an attribut
businessCategory=-TV- (for example all objects with value PhenixID should be handled.

Configuration parameters

Open the se.nordicedge.controls.lists.LinkedListControl in the IM Configurator 5.4.1 or later.

  • Search base (TOP for default BaseDN, -TV- will be replaced with triggervalue). Default is TOP.
    no further explanation
  • Attribute name to be used in the search filter for linked controls. E g attr1
    What attribute should be used to find objects
  • Search type (Contains/Equals/Starts). Default is Starts.
    no further explanation
  • Search scope (BASE/ONE/SUB). Default is SUB.
    Depth of search
  • Optional search filter, AND’ed with the attribute search filter, -TV- will be replaced with triggervalue
    Maybe you do not want to list all the values. Maybe only the object with attribute=-TV-
  • Attribute which value is shown in the list. E g attr. Default is dn.
    What attribute should be used to display the user in the dropdown list?
  • Attribute to be stored in target instead of the displayed attribut. Default blank and displayed value is stored. Use -DN- to store complete dn
    When you click apply in the form you like to store the selected value with the value of another attribut. You select SWEDEN but like to store SWE, SWEDEN and SWE is stored in different attributes.
  • Max no of search results. Default is 50.
    no further explanation
  • Escape * in search string (true/false). Default is false.
    no further explanation
  • Initial, predisplay search query.
    You like to have the query already executed for the parent so the dropdown list contains values. This is mainly a parent setting and not a setting on the child. LDAP query syntax.
  • Linked attribute, name of control to trigger when option is selected. Default is empty.
    When a value is selected on the parent, what is the name of the child(s). If you have two other linkedlist in the form, for example city and department. Then you should add l,department as value here.
  • Attribute to send to linked attribute. Default DN.
    What attribute value should you send to the child? This will be the -TV- for the child.
  • Text for first list entry, default * Select *
    Should it be a default value in the drop down list if when no value is selected? For example * Choose department
  • Default entry text. If no text matches the first (select) entry is shown
    If you have three choices SWE, FIN and DEN and 19 out of 20 times it is SWE then you can have a value pre-selected.

Width of control

Since linked list is a custom control the width if you like to match it with a Text field for example is a bit different. The linked list is always 103 pixel wider than a standard control, like text field for example.

Demo

Pre req

If you like to test the Linked List control, we have created a demo role for this with associated Active Directory structure.

You need to have a current IM installed and an Active Directory.

Download the file and follow the instructions below.
Click HERE to download demo role.

Find and replace to map you environment

Unzip the zip file. Use, for example Notepad++, to search and replace DC=phenixid2019,DC=local with the DN of your domain root in all files.

Create Active Directory structure

In the zip-file there is a file called CreateADStructure.ps1.
Open up a powershell prompt and run the script.
If successful it should look like below:

Add the demo role folder to your IM installation

The role includes one create form and one edit form.
There are three linked lists, Company that send its value to City and Department. If you change Company you will have results based on selected Company in City and Department.

  1. Add the role folder “0 Linked List demo” to the role folder in your IM environment. (\..\PhenixID\IM\customer\role)
  2. Restart the “PhenixID Identity Manager” service
  3. When you login to IM you should now have a role named “0 Linked List demo”. (if you did not have any other role you will not be prompted to choose the role, you will be logged in to role automatically). Note that the forms uses data from the created AD structure.
  4. The demo role lets you:
    1. Create new user and choose different Companies, Cities and Departments based on data in your Active Directory previously created.
    2. Find and edit users to choose different Companies, Cities and Departments.
  5. Open the forms in “IM Configurator” to see how the linked list are configured.


DISCLAIMER
Information provided in this document is for your information only. PhenixID makes no explicit or implied claims to the validity of this information. Any trademarks referenced in this document are the property of their respective owners.

The origin of this information may be internal or external to PhenixID. PhenixID makes all reasonable efforts to verify this information.

PhenixID - support.phenixid.se