[midPoint-git] [Evolveum/midpoint] 5c6fdd: Improve "one-sided exclusion" policy rules

mederly noreply at github.com
Mon Mar 20 09:59:40 CET 2023


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: 5c6fddc50701b50981a74e944b4275cbd2916179
      https://github.com/Evolveum/midpoint/commit/5c6fddc50701b50981a74e944b4275cbd2916179
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    A model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/AssociatedPolicyRule.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedAssignment.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCollectionStatsTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCompositeTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCustomConstraintTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedExclusionTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedHasAssignmentTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedModificationTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedMultiplicityTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRule.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRuleTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedSituationTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedStateTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTimeValidityTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTransitionTrigger.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/PolicyRuleExternalizationOptions.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/util/EvaluatedPolicyRuleUtil.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/EvaluatedPolicyRuleImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensContext.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/EvaluatedAssignmentImpl.java
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/ForeignPolicyRuleImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/PruningOperation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/AssignmentPolicyRuleEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleEnforcer.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyStateRecorder.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/AlwaysTrueConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/AssignmentModificationConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/CompositeConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/CustomConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/ExclusionConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/HasAssignmentConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/ModificationConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/MultiplicityConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/ObjectModificationConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/OrphanedConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/PolicyConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/PolicyConstraintsEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/PolicySituationConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/StateConstraintEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/evaluators/TransitionConstraintEvaluator.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/rbac/TestSegregationOfDuties.java
    M model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ApprovalSchemaBuilder.java
    M model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/AssignmentPolicyAspectPart.java
    M model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ObjectPolicyAspectPart.java
    M model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/PolicyRuleBasedAspect.java
    M model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ProcessSpecifications.java
    M model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/other/TestSoD.java
    A model/workflow-impl/src/test/resources/sod/role-coordinator.xml
    A model/workflow-impl/src/test/resources/sod/role-worker-1.xml
    A model/workflow-impl/src/test/resources/sod/role-worker-2.xml

  Log Message:
  -----------
  Improve "one-sided exclusion" policy rules

When a "one-side" exclusion policy rule triggers on the assignment on
which it is defined, this information is propagated onto the conflicting
assignment - this was implemented in
a296429170e721e61d525e2cbc8acd1a654f7e7c.

However, the problem is when there are multiple conflicting assignments.
Since the creation of policy rules, only one trigger was produced for
each constraint. Hence, only a single conflicting assigment could be
"marked" by the rule after the evaluation.

This is now fixed. All relevant triggers are processed. However, not all
of them are relevant to all conflicting assignments! So, a new mechanism
had to be conceived to handle this - see AssociatedPolicyRule interface
and ForeignPolicyRuleImpl class.

This resolves MID-8251.


  Commit: 622406a77fffeebf65dd141453c2c7d3bbff61e8
      https://github.com/Evolveum/midpoint/commit/622406a77fffeebf65dd141453c2c7d3bbff61e8
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebPrismUtil.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/data/provider/SelectableBeanObjectDataProvider.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/ResourceContentPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/ResourceGenericsPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/wizard/PreviewResourceDataWizardPanel.html
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/wizard/PreviewResourceDataWizardPanel.java
    R gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/wizard/ResourceWizardPanel1.html
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/wizard/objectType/PreviewResourceObjectTypeDataWizardPanel.html
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/wizard/objectType/PreviewResourceObjectTypeDataWizardPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/login/PageSelfRegistration.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/prism/panel/DefaultContainerablePanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.html
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PagePostAuthentication.html
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ObjectQueryUtil.java
    M infra/schema/src/test/java/com/evolveum/midpoint/schema/TestJaxbParsing.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelDiagController.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestValueMetadata.java
    M repo/repo-sqale/src/main/java/com/evolveum/midpoint/repo/sqale/audit/qmodel/MAuditEventRecord.java
    M repo/repo-sqale/src/main/java/com/evolveum/midpoint/repo/sqale/filtering/ExtensionItemFilterProcessor.java
    M repo/repo-sqale/src/main/java/com/evolveum/midpoint/repo/sqale/filtering/JsonbPolysPathItemFilterProcessor.java
    M repo/repo-sqale/src/main/java/com/evolveum/midpoint/repo/sqale/qmodel/lookuptable/QLookupTableMapping.java
    M repo/repo-sqale/src/test/java/com/evolveum/midpoint/repo/sqale/func/SqaleRepoSearchTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/EncodingTest.java
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/LookupTableHelper.java
    M repo/repo-sqlbase/src/main/java/com/evolveum/midpoint/repo/sqlbase/filtering/ValueFilterValues.java
    M repo/repo-sqlbase/src/main/java/com/evolveum/midpoint/repo/sqlbase/filtering/item/PolyStringItemFilterProcessor.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master'


Compare: https://github.com/Evolveum/midpoint/compare/bbe28625f1ec...622406a77fff


More information about the midPoint-svn mailing list