Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-10761

Progressive Profiling scripted condition does not include user fields within "object" map


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: OpenIDM 6.0.0
    • Fix Version/s: None
    • Component/s: None
    • Labels:
    • Story Points:
    • Sprint:
      OpenIDM Sprint 6.5-10.2


      As an admin, when I am configuring a Progressive profiling scripted Condition, I would expect to reference fields in a user object as "object.telephoneNumber"

      Currently when the user object is bound to the scriptedCondition, it is bound only by the fields, so that you have to reference the field "telephoneNumber" directly. This is different than the other scripts that are present in our project.

      this causes the scripts to be like:

      typeof telephoneNumber === 'undefined'

      Why this is a problem:

      • not consistent with rest of the product
      • if we leave it like this for 6.0 and fix it for future releases, then existing customer's scripts will break for Progressive Profiling.
      • this also prevents the admin from doing the following to see all the fields that are available within the scope:
        console.log(JSON.stringify(object ,null,4));


      Current behavior:
      Scripts have to look like this:

      typeof telephoneNumber === ‘undefined’ || telephoneNumber === ‘’

      Expected Behavior:

      Scripts should work like this:

      typeof object.telephoneNumber === ‘undefined’ || object.telephoneNumber === ‘’

      To fix the backend:
      This will require refactoring in the backend because the ScriptedCondition is currently used in the PropertyMappings.java, SyncOperations.java, and AbstractConditionalStage.java. The first two add the appropriate "object" map to the content before calling the ScriptedCondition evaluate method. However, since the AbstractConditionalStage is used for all Conditional Stages we can't simply place the content within an "object" map since we only need it for the ScriptedCondition. 


          Issue Links



              • Assignee:
                brmiller Brendan Miller
                krismy.alfaro Krismy Alfaro
              • Votes:
                0 Vote for this issue
                3 Start watching this issue


                • Created: