diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DatePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DatePanel.java index 24d03acf565..515026a54e2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DatePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DatePanel.java @@ -34,7 +34,7 @@ public class DatePanel extends InputPanel { public DatePanel(String id, IModel model) { super(id); - DateInput date = new DateInput(ID_INPUT, new XmlGregorianCalendarModel(model, true)); + DateInput date = new DateInput(ID_INPUT, new XmlGregorianCalendarModel(model)); add(date); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/XmlGregorianCalendarModel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/XmlGregorianCalendarModel.java index 46edc876742..f4bc18cfb8e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/XmlGregorianCalendarModel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/XmlGregorianCalendarModel.java @@ -31,15 +31,9 @@ public class XmlGregorianCalendarModel extends Model { private IModel model; - private boolean copyTime; public XmlGregorianCalendarModel(IModel model) { - this(model, true); - } - - public XmlGregorianCalendarModel(IModel model, boolean copyTime) { this.model = model; - this.copyTime = copyTime; } @Override @@ -56,27 +50,7 @@ public void setObject(Date object) { if (object == null) { model.setObject(null); } else { - if (copyTime) { - Date d = getObject(); - object = copyTime(d, object); - } model.setObject(MiscUtil.asXMLGregorianCalendar(object)); } } - - private Date copyTime(Date from, Date to) { - if (from == null || to == null) { - return to; - } - - Calendar calendar = Calendar.getInstance(); - calendar.setTime(from); - - to = DateUtils.setHours(to, calendar.get(Calendar.HOUR_OF_DAY)); - to = DateUtils.setMinutes(to, calendar.get(Calendar.MINUTE)); - to = DateUtils.setSeconds(to, calendar.get(Calendar.SECOND)); - to = DateUtils.setMilliseconds(to, calendar.get(Calendar.MILLISECOND)); - - return to; - } } diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java index 3b44b807bcf..15c8697d291 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java @@ -15,6 +15,7 @@ */ package com.evolveum.midpoint.model.intest; +import static org.testng.AssertJUnit.assertFalse; import static com.evolveum.midpoint.test.IntegrationTestTools.display; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; @@ -45,6 +46,7 @@ import com.evolveum.midpoint.prism.delta.ChangeType; import com.evolveum.midpoint.prism.delta.ObjectDelta; import com.evolveum.midpoint.prism.delta.PropertyDelta; +import com.evolveum.midpoint.prism.util.PrismAsserts; import com.evolveum.midpoint.prism.util.PrismTestUtil; import com.evolveum.midpoint.prism.xml.XmlTypeConverter; import com.evolveum.midpoint.schema.ObjectDeltaOperation; @@ -61,6 +63,7 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentPolicyEnforcementType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.LockoutStatusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType; @@ -932,6 +935,85 @@ public void test160ModifyUserJackAssignAccountKhaki() throws Exception { } assertTrue("Shadow delta not found", found); } + + @Test + public void test170GetAccountUnlocked() throws Exception { + final String TEST_NAME = "test170GetAccountUnlocked"; + TestUtil.displayTestTile(this, TEST_NAME); + + // GIVEN + Task task = taskManager.createTaskInstance(TestActivation.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + assumeAssignmentPolicy(AssignmentPolicyEnforcementType.FULL); + + // WHEN + PrismObject shadow = modelService.getObject(ShadowType.class, accountOid, null, task, result); + + // THEN + result.computeStatus(); + TestUtil.assertSuccess("executeChanges result", result); + + PrismAsserts.assertNoItem(shadow, SchemaConstants.PATH_ACTIVATION_LOCKOUT_STATUS); + } + + @Test + public void test172GetAccountLocked() throws Exception { + final String TEST_NAME = "test172GetAccountLocked"; + TestUtil.displayTestTile(this, TEST_NAME); + + // GIVEN + Task task = taskManager.createTaskInstance(TestActivation.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + assumeAssignmentPolicy(AssignmentPolicyEnforcementType.FULL); + + DummyAccount dummyAccount = getDummyAccount(null, ACCOUNT_JACK_DUMMY_USERNAME); + dummyAccount.setLockout(true); + + // WHEN + PrismObject shadow = modelService.getObject(ShadowType.class, accountOid, null, task, result); + + // THEN + result.computeStatus(); + TestUtil.assertSuccess("executeChanges result", result); + + PrismAsserts.assertPropertyValue(shadow, SchemaConstants.PATH_ACTIVATION_LOCKOUT_STATUS, + LockoutStatusType.LOCKED); + } + + @Test + public void test174ModifyAccountUnlock() throws Exception { + final String TEST_NAME = "test174ModifyAccountUnlock"; + TestUtil.displayTestTile(this, TEST_NAME); + + // GIVEN + Task task = taskManager.createTaskInstance(TestActivation.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + assumeAssignmentPolicy(AssignmentPolicyEnforcementType.FULL); + + // WHEN + ObjectDelta dummyDelta = createModifyAccountShadowReplaceDelta(accountOid, null, + SchemaConstants.PATH_ACTIVATION_LOCKOUT_STATUS, LockoutStatusType.NORMAL); + Collection> deltas = MiscSchemaUtil.createCollection(dummyDelta); + + modelService.executeChanges(deltas, null, task, result); + + // THEN + result.computeStatus(); + TestUtil.assertSuccess("executeChanges result", result); + + DummyAccount dummyAccount = getDummyAccount(null, ACCOUNT_JACK_DUMMY_USERNAME); + assertFalse("Dummy account was not unlocked", dummyAccount.isLockout()); + + PrismObject userJack = getUser(USER_JACK_OID); + display("User after change execution", userJack); + assertUserJack(userJack); + + PrismObject shadow = modelService.getObject(ShadowType.class, accountOid, null, task, result); + PrismAsserts.assertPropertyValue(shadow, SchemaConstants.PATH_ACTIVATION_LOCKOUT_STATUS, + LockoutStatusType.NORMAL); + + checkAdminStatusFor15x(userJack, true, true, true); + } @Test