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

ManagedObjectSet handling of patch removal of singleton relationship field will prevent successful calculation of virtual properties based on this field

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: OpenIDM 6.0.0, 6.5.0, 6.0.0.1, 7.0.0, 6.0.0.2, 6.0.0.3, 6.0.0.4, 6.0.0.5, 6.5.0.1, 6.5.0.2
    • Fix Version/s: 7.0.0
    • Target Version/s:
    • Verified Version/s:
    • Story Points:
      2
    • Sprint:
      2020.08 - IDM, 2020.09 - IDM

      Description

      The UI will dispatch the deletion of a user's manager field as a patch removal of the manager field. The realization of this patch request will result in an invocation of MOS#update with a newObject parameter missing the manager field. When virtual properties are calculated, the contract implicit in effectiveRoles.js, stipulates that relationship queries will be dispatched only in the absence of the relevant relationship field in the managed user parameter. See 

      effectiveRoles.calculateEffectiveRoles->
      relationshipHelper.getGrantsExistingObject->
      relationshipHelper.getGrantsWithId

      for details.

      Thus, when MOS#update is called, a patch remove of the manager relationship field will result in a newObject parameter missing this field, and thus any virtual property calculation honoring this implicit contract will query the corresponding relationship field, thereby returning manager field state other than that specified in the patch invocation, thus generating virtual properties based off of incorrect relationship state. 

      Note that it is impossible to not honor this implicit contract, as edge mutations in MOS#update occur after virtual property calculations - and thus the only accurate relationship state is resident in the newObject parameter. The absence of this manager field implies that the current relationship state is correct, and thus can be queried.

      Thus it would seem that the patch removal of a singleton relationship field must be interpreted as the removal of the edge in this field, and not that this relationship field has not been affected by the patch request, as is currently the case.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              dhogan Dirk Hogan
              Reporter:
              dhogan Dirk Hogan
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: