public AssignmentType policySituation(String value) { getPolicySituation().add(value); return this; }
@Override public <F extends FocusType> Collection<? extends AccessCertificationCaseType> createCasesForObject(PrismObject<F> objectPrism, AccessCertificationCampaignType campaign, Task task, OperationResult parentResult) { F focus = objectPrism.asObjectable(); List<AccessCertificationCaseType> caseList = new ArrayList<>(); for (AssignmentType assignment : focus.getAssignment()) { if (assignment.getPolicySituation().contains(SchemaConstants.MODEL_POLICY_SITUATION_EXCLUSION_VIOLATION)) { processAssignment(assignment, focus, caseList); } } return caseList; }
public List<String> createPolicySituationList() { PrismForJAXBUtil.createProperty(asPrismContainerValue(), F_POLICY_SITUATION); return getPolicySituation(); }
private void assertExclusionViolationState(AssignmentType assignment) { assertEquals("Wrong policy situations", Collections.singletonList(SchemaConstants.MODEL_POLICY_SITUATION_EXCLUSION_VIOLATION), assignment.getPolicySituation()); assertEquals("Wrong # of triggered policy rules in assignment " + assignment, 1, assignment.getTriggeredPolicyRule().size()); List<EvaluatedPolicyRuleTriggerType> triggers = assignment.getTriggeredPolicyRule().get(0).getTrigger(); assertEquals("Wrong # of triggers in triggered policy rule in assignment " + assignment, 1, triggers.size()); assertEquals("Wrong type of trigger in " + assignment, PolicyConstraintKindType.EXCLUSION, triggers.get(0).getConstraintKind()); }
private void assertPolicySituation(PrismObject<UserType> user, String targetOid, String... expectedPolicySituation) { for (AssignmentType assignment: user.asObjectable().getAssignment()) { ObjectReferenceType targetRef = assignment.getTargetRef(); if (targetRef != null && targetOid.equals(targetRef.getOid())) { PrismAsserts.assertSets("Wrong policy situation for target "+targetOid+" in "+user, assignment.getPolicySituation(), expectedPolicySituation); } } }
protected void assertAssignmentPolicySituation(LensContext<? extends FocusType> context, String roleOid, String... uris) { AssignmentType assignment = findAssignmentByTargetRequired(context.getFocusContext().getObjectNew(), roleOid); PrismAsserts.assertEqualsCollectionUnordered("Wrong assignment policy situation", assignment.getPolicySituation(), uris); }
ComputationResult cr = compute(rulesToRecord, assignmentToCompute.getPolicySituation(), assignmentToCompute.getTriggeredPolicyRule()); if (cr.situationsNeedUpdate) { focusContext.addToPendingAssignmentPolicyStateModifications(assignmentToMatch,
@Test public void test100JackAssignRoleJudge() throws Exception { TestCtx t = createContext(this, "test100JackAssignRoleJudge"); // GIVEN // WHEN t.displayWhen(); assignRole(USER_JACK_OID, ROLE_JUDGE_OID, t.task, t.result); // THEN t.displayThen(); UserType jack = getUser(USER_JACK_OID).asObjectable(); display("jack", jack); t.result.computeStatus(); TestUtil.assertSuccess(t.result); assertAssignedRole(jack.asPrismObject(), ROLE_JUDGE_OID); assertEquals("Wrong # of assignments", 1, jack.getAssignment().size()); assertEquals("Wrong policy situations", Collections.emptyList(), jack.getAssignment().get(0).getPolicySituation()); display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(1); }
@Test public void test200BobAssign2a3a() throws Exception { TestCtx t = createContext(this, "test200BobAssign2a3a"); // GIVEN // WHEN t.displayWhen(); ObjectDelta<UserType> delta = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) .add(createAssignmentTo(roleATest2aOid, ObjectTypes.ROLE, prismContext), createAssignmentTo(roleATest3aOid, ObjectTypes.ROLE, prismContext)) .asObjectDeltaCast(userBobOid); executeChangesAssertSuccess(delta, null, t.task, t.result); // THEN t.displayThen(); UserType bob = getUser(userBobOid).asObjectable(); display("bob", bob); t.result.computeStatus(); TestUtil.assertSuccess(t.result); assertAssignedRole(bob.asPrismObject(), roleATest2aOid); assertAssignedRole(bob.asPrismObject(), roleATest3aOid); assertEquals("Wrong # of assignments", 2, bob.getAssignment().size()); assertEquals("Wrong policy situations for assignment 1", Collections.emptyList(), bob.getAssignment().get(0).getPolicySituation()); assertEquals("Wrong policy situations for assignment 2", Collections.emptyList(), bob.getAssignment().get(1).getPolicySituation()); display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(1); // no policy state update }
protected void dumpPolicySituations(LensContext<? extends FocusType> context) { LensFocusContext<? extends FocusType> focusContext = context.getFocusContext(); if (focusContext != null && focusContext.getObjectNew() != null) { FocusType focus = focusContext.getObjectNew().asObjectable(); display("focus policy situation", focus.getPolicySituation()); for (AssignmentType assignment : focus.getAssignment()) { display("assignment policy situation", assignment.getPolicySituation()); } } else { display("no focus context or object"); } }
@Test public void test120RecomputeJack() throws Exception { TestCtx t = createContext(this, "test120RecomputeJack"); // GIVEN // WHEN t.displayWhen(); executeChanges(prismContext.deltaFactory().object().createEmptyModifyDelta(UserType.class, USER_JACK_OID), createReconcile(), t.task, t.result); //recomputeUser(USER_JACK_OID, t.task, t.result); // THEN t.displayThen(); UserType jack = getUser(USER_JACK_OID).asObjectable(); display("jack", jack); t.result.computeStatus(); TestUtil.assertSuccess(t.result); // TODO test that assignment IDs are filled in correctly (currently they are not) assertEquals("Wrong # of assignments", 2, jack.getAssignment().size()); for (AssignmentType assignment : jack.getAssignment()) { assertEquals("Wrong policy situations", Collections.singletonList(SchemaConstants.MODEL_POLICY_SITUATION_EXCLUSION_VIOLATION), assignment.getPolicySituation()); } display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(1); dummyAuditService.assertExecutionDeltas(0); }
@Test public void test130JackUnassignRolePirate() throws Exception { TestCtx t = createContext(this, "test130JackUnassignRolePirate"); // GIVEN UserType jack = getUser(USER_JACK_OID).asObjectable(); AssignmentType pirateAssignment = findAssignmentByTargetRequired(jack.asPrismObject(), ROLE_PIRATE_OID); // WHEN t.displayWhen(); ObjectDelta<UserType> delta = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) .delete(pirateAssignment.clone()) .asObjectDeltaCast(USER_JACK_OID); executeChangesAssertSuccess(delta, null, t.task, t.result); // THEN t.displayThen(); jack = getUser(USER_JACK_OID).asObjectable(); display("jack", jack); t.result.computeStatus(); TestUtil.assertSuccess(t.result); assertNotAssignedRole(jack.asPrismObject(), ROLE_PIRATE_OID); assertEquals("Wrong # of assignments", 1, jack.getAssignment().size()); assertEquals("Wrong policy situations", Collections.emptyList(), jack.getAssignment().get(0).getPolicySituation()); display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(1); // executed in one shot }
repo.setOrder(jaxb.getOrder()); repo.setLifecycleState(jaxb.getLifecycleState()); repo.setPolicySituation(RUtil.listToSet(jaxb.getPolicySituation()));
if (changedAssignment.getPolicyRule() != null || !changedAssignment.getPolicyException().isEmpty() || !changedAssignment.getPolicySituation().isEmpty() || !changedAssignment.getTriggeredPolicyRule().isEmpty()) {