private <AH extends AssignmentHolderType> void collectFocusRulesFromAssignments(List<EvaluatedPolicyRule> rules, LensContext<AH> context) { DeltaSetTriple<EvaluatedAssignmentImpl<?>> evaluatedAssignmentTriple = context.getEvaluatedAssignmentTriple(); if (evaluatedAssignmentTriple == null) { return; } for (EvaluatedAssignmentImpl<?> evaluatedAssignment : evaluatedAssignmentTriple.getNonNegativeValues()) { rules.addAll(evaluatedAssignment.getFocusPolicyRules()); } }
@Experimental public boolean hasActiveAssignmentTargetSubtype(String roleSubtype) { LensContext<ObjectType> lensContext = ModelExpressionThreadLocalHolder.getLensContext(); if (lensContext == null) { throw new UnsupportedOperationException("hasActiveAssignmentRoleSubtype works only with model context"); } DeltaSetTriple<EvaluatedAssignmentImpl<?>> evaluatedAssignmentTriple = lensContext.getEvaluatedAssignmentTriple(); if (evaluatedAssignmentTriple == null) { throw new UnsupportedOperationException("hasActiveAssignmentRoleSubtype works only with evaluatedAssignmentTriple"); } Collection<EvaluatedAssignmentImpl<?>> nonNegativeEvaluatedAssignments = evaluatedAssignmentTriple.getNonNegativeValues(); if (nonNegativeEvaluatedAssignments == null) { return false; } for (EvaluatedAssignmentImpl<?> nonNegativeEvaluatedAssignment : nonNegativeEvaluatedAssignments) { PrismObject<?> target = nonNegativeEvaluatedAssignment.getTarget(); if (target == null) { continue; } Collection<String> targetSubtypes = FocusTypeUtil.determineSubTypes((PrismObject) target); if (targetSubtypes.contains(roleSubtype)) { return true; } } return false; }
public <O extends ObjectType> void execute(@NotNull ModelContext<O> context, Task task, OperationResult result) { LensFocusContext<?> focusContext = (LensFocusContext<?>) context.getFocusContext(); if (focusContext != null) { for (EvaluatedPolicyRule rule : focusContext.getPolicyRules()) { executeRuleScriptingActions(rule, context, task, result); } DeltaSetTriple<EvaluatedAssignmentImpl<?>> triple = ((LensContext<?>) context).getEvaluatedAssignmentTriple(); if (triple != null) { for (EvaluatedAssignment<?> assignment : triple.getNonNegativeValues()) { for (EvaluatedPolicyRule rule : assignment.getAllTargetsPolicyRules()) { executeRuleScriptingActions(rule, context, task, result); } } } } }
for (EvaluatedAssignmentImpl<?> evaluatedAssignment : evaluatedAssignmentTriple.getNonNegativeValues()) { if (evaluatedAssignment.isValid()) { for (MappingImpl<?, ?> mapping : evaluatedAssignment.getFocusMappings()) {
private void emitPolicyRulesEvents(ModelContext<?> context, Task task, OperationResult result) { LensFocusContext<?> focusContext = (LensFocusContext<?>) context.getFocusContext(); for (EvaluatedPolicyRule rule : focusContext.getPolicyRules()) { emitPolicyEventIfPresent(rule, context, task, result); } DeltaSetTriple<EvaluatedAssignmentImpl<?>> triple = ((LensContext<?>) context).getEvaluatedAssignmentTriple(); if (triple != null) { for (EvaluatedAssignment<?> assignment : triple.getNonNegativeValues()) { for (EvaluatedPolicyRule rule : assignment.getAllTargetsPolicyRules()) { emitPolicyEventIfPresent(rule, context, task, result); } } } }
return; // could be if the "assignments" step is skipped for (EvaluatedAssignmentImpl<?> evalAssignment : evaluatedAssignmentTriple.getNonNegativeValues()) { if (evalAssignment.isValid()) { addReferences(shouldBeRoleRefs, evalAssignment.getMembershipRefVals());
for (EvaluatedAssignmentImpl<AH> assignmentB : ctx.evaluatedAssignmentTriple.getNonNegativeValues()) { if (assignmentB.equals(ctx.evaluatedAssignment)) { // TODO (value instead of reference equality?) continue;
for (ItemValueWithOrigin<V,D> ivwo: ivwoTriple.getNonNegativeValues()) { PrismValueDeltaSetTripleProducer<V, D> mapping = ivwo.getMapping(); PrismValueDeltaSetTriple<?> outputTriple = mapping.getOutputTriple();
LOGGER.trace("existingPersonas:\n{}", existingPersonas); for (PersonaKey key: activePersonaKeyTriple.getNonNegativeValues()) { FocusType existingPersona = findPersona(existingPersonas, key); LOGGER.trace("existingPersona: {}", existingPersona);
shouldBePValues = new ArrayList<>(); } else { shouldBePValues = selectValidValues(pvwoTriple.getNonNegativeValues());
for (EvaluatedAssignmentImpl<?> evalAssignment : evaluatedAssignmentTriple.getNonNegativeValues()) { if (!evalAssignment.isValid()) { continue;
boolean allowDisabled = !Boolean.TRUE.equals(constraint.isEnabled()); for (EvaluatedAssignmentImpl<?> evaluatedAssignment : evaluatedAssignmentTriple.getNonNegativeValues()) { boolean assignmentIsInPlusSet = evaluatedAssignmentTriple.presentInPlusSet(evaluatedAssignment); boolean assignmentIsInZeroSet = evaluatedAssignmentTriple.presentInZeroSet(evaluatedAssignment); boolean assignmentIsInMinusSet = evaluatedAssignmentTriple.presentInMinusSet(evaluatedAssignment); DeltaSetTriple<EvaluatedAssignmentTargetImpl> targetsTriple = evaluatedAssignment.getRoles(); for (EvaluatedAssignmentTargetImpl target : targetsTriple.getNonNegativeValues()) { if (!target.appliesToFocus()) { continue;
return; // could be if "assignments" step is skipped for (EvaluatedAssignmentImpl<?> evalAssignment : evaluatedAssignmentTriple.getNonNegativeValues()) { if (evalAssignment.isValid()) { addReferences(shouldBeParentOrgRefs, evalAssignment.getOrgRefVals());
adminGuiConfigurations.addAll(assignment.getAdminGuiConfigurations()); for (EvaluatedAssignmentTarget target : assignment.getRoles().getNonNegativeValues()) { if (target.isValid() && target.getTarget() != null && target.getTarget().asObjectable() instanceof UserType && DeputyUtils.isDelegationPath(target.getAssignmentPath(), relationRegistry)) {
shouldBePValues = new HashSet<>(); } else { shouldBePValues = new HashSet<>(selectValidValues(pvwoTriple.getNonNegativeValues()));
Collection<? extends ItemValueWithOrigin<V,D>> nonNegativePvwos = ivwoTriple.getNonNegativeValues(); Collection<ItemValueWithOrigin<V,D>> valuesToAdd = selectWeakValues(nonNegativePvwos, OriginType.ASSIGNMENTS); if (valuesToAdd.isEmpty()) {
for (EvaluatedAssignmentTargetImpl target : evaluatedAssignment.getRoles().getNonNegativeValues()) { if (!target.getAssignmentPath().last().isMatchingOrder() && !target.isDirectlyAssigned()) {
continue; for (EvaluatedAssignmentTarget target : assignment.getRoles().getNonNegativeValues()) { if (target.getTarget() != null && target.getTarget().getOid() != null && DeputyUtils.isDelegationPath(target.getAssignmentPath(), relationRegistry)
evaluatedAssignmentTriple.getNonNegativeValues());
if (consolidatedTriples != null) { Collection<ItemValueWithOrigin<V, D>> shouldBeItemValues = consolidatedTriples.getNonNegativeValues(); for (ItemValueWithOrigin<V, D> itemWithOrigin : shouldBeItemValues) { shouldBeItem.add(LensUtil.cloneAndApplyMetadata(itemWithOrigin.getItemValue(),