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

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

    Details

    • 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:
      3
    • Sprint:
      OpenIDM Sprint 6.5-10.2

      Description

      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. 

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: