private LocalizableMessage processNameFromApprovalActions(ApprovalSchemaBuilder.Result schemaBuilderResult, @Nullable EvaluatedAssignment<?> evaluatedAssignment, ModelInvocationContext<?> ctx, OperationResult result) { if (schemaBuilderResult.approvalDisplayName == null) { return null; } Map<QName, Object> variables = new HashMap<>(); variables.put(ExpressionConstants.VAR_OBJECT, getFocusObjectNewOrOld(ctx.modelContext)); variables.put(ExpressionConstants.VAR_OBJECT_DISPLAY_INFORMATION, createLocalizableMessageType(createDisplayInformation(asPrismObject(getFocusObjectNewOrOld(ctx.modelContext)), false))); if (evaluatedAssignment != null) { variables.put(ExpressionConstants.VAR_TARGET, evaluatedAssignment.getTarget()); variables.put(ExpressionConstants.VAR_TARGET_DISPLAY_INFORMATION, createLocalizableMessageType(createDisplayInformation(evaluatedAssignment.getTarget(), false))); variables.put(ExpressionConstants.VAR_EVALUATED_ASSIGNMENT, evaluatedAssignment); variables.put(ExpressionConstants.VAR_ASSIGNMENT, evaluatedAssignment.getAssignmentType()); } else { variables.put(ExpressionConstants.VAR_TARGET, null); variables.put(ExpressionConstants.VAR_TARGET_DISPLAY_INFORMATION, null); variables.put(ExpressionConstants.VAR_EVALUATED_ASSIGNMENT, null); variables.put(ExpressionConstants.VAR_ASSIGNMENT, null); } LocalizableMessageType localizableMessageType; try { localizableMessageType = modelInteractionService .createLocalizableMessageType(schemaBuilderResult.approvalDisplayName, variables, ctx.taskFromModel, result); } catch (CommonException|RuntimeException e) { throw new SystemException("Couldn't create localizable message for approval display name: " + e.getMessage(), e); } return LocalizationUtil.toLocalizableMessage(localizableMessageType); }
PrismObject<?> targetObject = evaluatedAssignment.getTarget(); if (targetObject == null) { if (!triggeredApprovalActionRules.isEmpty()) {
private <AH extends AssignmentHolderType> EvaluatedPolicyRuleTrigger<MultiplicityPolicyConstraintType> checkAssigneeConstraints(JAXBElement<MultiplicityPolicyConstraintType> constraint, LensContext<AH> context, EvaluatedAssignment<AH> assignment, PlusMinusZero plusMinus, AssignmentPolicyRuleEvaluationContext<AH> ctx, OperationResult result) throws SchemaException, ExpressionEvaluationException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException { PrismObject<?> target = assignment.getTarget(); if (target == null || !(target.asObjectable() instanceof AbstractRoleType)) { return null;
OperationResult result) throws SchemaException { PrismObject<?> targetObject = evaluatedAssignment.getTarget(); ApprovalSchemaBuilder builder = new ApprovalSchemaBuilder(main, approvalSchemaHelper);
PrismObject<? extends ObjectType> target = (PrismObject<? extends ObjectType>) evaluatedAssignment.getTarget(); Validate.notNull(target, "assignment target is null");
assertNotNull("Target of evaluated assignment is null", evaluatedAssignment.getTarget()); assertEquals("Wrong # of zero-set roles in evaluated assignment", 1, evaluatedAssignment.getRoles().getZeroSet().size());
assertNotNull("Target of evaluated assignment is null", evaluatedAssignment.getTarget()); assertEquals("Wrong # of zero-set roles in evaluated assignment", 1, evaluatedAssignment.getRoles().getZeroSet().size());
assertEquals("Wrong conflicting assignment in trigger", ROLE_JUDGE_OID, triggerExclusion.getConflictingAssignment().getTarget().getOid()); EvaluatedExclusionTrigger sourceTrigger = (EvaluatedExclusionTrigger) sourceRule.getTriggers().iterator().next(); assertNotNull("No conflicting assignment in source trigger", sourceTrigger.getConflictingAssignment()); assertEquals("Wrong conflicting assignment in source trigger", ROLE_JUDGE_OID, sourceTrigger.getConflictingAssignment().getTarget().getOid());
.key("PolicyViolationException.message.prunedRolesAssigned") .arg(ObjectTypeUtil.createDisplayInformation(plusAssignment.getTarget(), false)) .arg(ObjectTypeUtil.createDisplayInformation(conflictingAssignment.getTarget(), false)) .build(); targetPolicyRule.addTrigger(
EvaluatedExclusionTrigger trigger = (EvaluatedExclusionTrigger) assertTriggeredTargetPolicyRule(context, null, PolicyConstraintKindType.EXCLUSION, 1, true); assertNotNull("No conflicting assignment in trigger", trigger.getConflictingAssignment()); assertEquals("Wrong conflicting assignment in trigger", ROLE_PIRATE_OID, trigger.getConflictingAssignment().getTarget().getOid());
assertEquals("Wrong conflicting assignment in trigger", ROLE_CORP_CONTRACTOR_OID, trigger.getConflictingAssignment().getTarget().getOid());
EvaluatedExclusionTrigger engineerTrigger = (EvaluatedExclusionTrigger) assertTriggeredTargetPolicyRule(context, ROLE_CORP_ENGINEER_OID, PolicyConstraintKindType.EXCLUSION, 1, false); assertNotNull("No conflicting assignment in trigger", engineerTrigger.getConflictingAssignment()); assertEquals("Wrong conflicting assignment in trigger", ROLE_CORP_CONTRACTOR_OID, engineerTrigger.getConflictingAssignment().getTarget().getOid()); assertTriggeredTargetPolicyRule(context, ROLE_CORP_ENGINEER_OID, PolicyConstraintKindType.ASSIGNMENT_MODIFICATION, 1, false); assertTriggeredTargetPolicyRule(context, ROLE_CORP_ENGINEER_OID, PolicyConstraintKindType.SITUATION, 1, false);