Search in sources :

Example 6 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestRetirement method getAndAssertUser.

private PrismObject<UserType> getAndAssertUser(String username, String directOrgGroupname, String... indirectGroupNames) throws SchemaException, CommonException, SecurityViolationException, CommunicationException, ConfigurationException, DirectoryException {
    PrismObject<UserType> user = findUserByUsername(username);
    display("user", user);
    String shadowOid = getLinkRefOid(user, RESOURCE_OPENDJ_OID, ShadowKindType.ACCOUNT, SchemaConstants.INTENT_DEFAULT);
    PrismObject<ShadowType> accountShadow = getShadowModel(shadowOid);
    display("Account " + username + " shadow", accountShadow);
    // TODO assert shadow content
    Entry accountEntry = openDJController.searchSingle("uid=" + username);
    assertNotNull("No account LDAP entry for " + username, accountEntry);
    display("account entry", openDJController.toHumanReadableLdifoid(accountEntry));
    openDJController.assertObjectClass(accountEntry, "inetOrgPerson");
    return user;
}
Also used : Entry(org.opends.server.types.Entry) ShadowType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) UserType(com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)

Example 7 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestRetirement method getAndAssertRetiredUser.

private PrismObject<UserType> getAndAssertRetiredUser(String username) throws SchemaException, CommonException, SecurityViolationException, CommunicationException, ConfigurationException, DirectoryException {
    PrismObject<UserType> user = findUserByUsername(username);
    display("user", user);
    String shadowOid = getLinkRefOid(user, RESOURCE_OPENDJ_OID, ShadowKindType.ACCOUNT, SchemaConstants.INTENT_DEFAULT);
    PrismObject<ShadowType> accountShadow = getShadowModel(shadowOid);
    display("Account " + username + " shadow", accountShadow);
    // TODO assert shadow content
    String dn = "uid=RRR-" + username + ",ou=RETIRED,dc=example,dc=com";
    Entry accountEntry = openDJController.fetchEntry(dn);
    assertNotNull("No account LDAP entry for " + username + " (" + dn + ")", accountEntry);
    display("account entry", openDJController.toHumanReadableLdifoid(accountEntry));
    openDJController.assertObjectClass(accountEntry, "inetOrgPerson");
    return user;
}
Also used : Entry(org.opends.server.types.Entry) ShadowType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) UserType(com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)

Example 8 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestUnix method test314AccountWallyAddPosixObjectclassNative.

/**
	 * Add posixAccount directly in LDAP server. Then try to get the account. MidPoint should survive that.
	 */
@Test
public void test314AccountWallyAddPosixObjectclassNative() throws Exception {
    final String TEST_NAME = "test314AccountWallyAddPosixObjectclassNative";
    TestUtil.displayTestTile(this, TEST_NAME);
    Task task = taskManager.createTaskInstance(TestUnix.class.getName() + "." + TEST_NAME);
    OperationResult result = task.getResult();
    openDJController.executeLdifChange("dn: " + accountWallyDn + "\n" + "changetype: modify\n" + "add: objectclass\n" + "objectclass: posixAccount\n" + "-\n" + "add: uidNumber\n" + "uidNumber: " + USER_WALLY_UID_NUMBER + "\n" + "-\n" + "add: gidNumber\n" + "gidNumber: " + USER_WALLY_UID_NUMBER + "\n" + "-\n" + "add: homeDirectory\n" + "homeDirectory: /home/wally");
    Entry entryWallyBefore = openDJController.fetchEntry(accountWallyDn);
    display("Wally LDAP account before", entryWallyBefore);
    // WHEN
    TestUtil.displayWhen(TEST_NAME);
    PrismObject<ShadowType> shadow = modelService.getObject(ShadowType.class, accountWallyOid, null, task, result);
    // THEN
    TestUtil.displayThen(TEST_NAME);
    result.computeStatus();
    TestUtil.assertSuccess(result);
    display("Shadow (model)", shadow);
    assertPosixAccount(shadow, USER_WALLY_UID_NUMBER);
    PrismObject<ShadowType> repoShadow = repositoryService.getObject(ShadowType.class, accountWallyOid, null, result);
    display("Shadow (repo)", repoShadow);
    PrismAsserts.assertPropertyValue(repoShadow, ShadowType.F_AUXILIARY_OBJECT_CLASS, OPENDJ_ACCOUNT_POSIX_AUXILIARY_OBJECTCLASS_NAME);
    PrismObject<UserType> userAfter = findUserByUsername(USER_WALLY_USERNAME);
    assertNotNull("No wally user", userAfter);
    display("User after", userAfter);
    assertUserPosix(userAfter, USER_WALLY_USERNAME, USER_WALLY_FIST_NAME, USER_WALLY_LAST_NAME, USER_WALLY_UID_NUMBER);
    accountMancombOid = getSingleLinkOid(userAfter);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) Test(org.testng.annotations.Test)

Example 9 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestUnix method test132MeddleWithAccountAndReconcileUserLargo.

/**
	 * Modify the account directly on resource: remove aux object class, remove the
	 * attributes. Then reconcile the user. The recon should fix it.
	 */
@Test
public void test132MeddleWithAccountAndReconcileUserLargo() throws Exception {
    final String TEST_NAME = "test132MeddleWithAccountAndReconcileUserLargo";
    TestUtil.displayTestTile(this, TEST_NAME);
    Task task = taskManager.createTaskInstance(TestUnix.class.getName() + "." + TEST_NAME);
    OperationResult result = task.getResult();
    PrismObject<UserType> userBefore = findUserByUsername(USER_LARGO_USERNAME);
    openDJController.executeLdifChange("dn: " + accountLargoDn + "\n" + "changetype: modify\n" + "delete: objectClass\n" + "objectClass: posixAccount\n" + "-\n" + "delete: homeDirectory\n" + "homeDirectory: /home/largo\n" + "-\n" + "delete: uidNumber\n" + "uidNumber: " + USER_LARGO_UID_NUMBER + "\n" + "-\n" + "delete: gidNumber\n" + "gidNumber: " + USER_LARGO_UID_NUMBER + "\n");
    Entry entryBefore = openDJController.fetchEntry(accountLargoDn);
    display("Entry before", entryBefore);
    dummyAuditService.clear();
    // WHEN
    TestUtil.displayWhen(TEST_NAME);
    reconcileUser(userBefore.getOid(), task, result);
    // THEN
    TestUtil.displayThen(TEST_NAME);
    result.computeStatus();
    TestUtil.assertSuccess(result);
    PrismObject<UserType> userAfter = findUserByUsername(USER_LARGO_USERNAME);
    assertNotNull("No user after", userAfter);
    display("User after", userAfter);
    assertUserPosix(userAfter, USER_LARGO_USERNAME, USER_LARGO_FIST_NAME, USER_LARGO_LAST_NAME, USER_LARGO_UID_NUMBER);
    String accountOid = getSingleLinkOid(userAfter);
    PrismObject<ShadowType> shadow = getShadowModel(accountOid);
    display("Shadow (model)", shadow);
    assertPosixAccount(shadow, USER_LARGO_UID_NUMBER);
    display("Audit", dummyAuditService);
    dummyAuditService.assertSimpleRecordSanity();
    dummyAuditService.assertRecords(2);
    dummyAuditService.assertExecutionDeltas(1);
    dummyAuditService.assertHasDelta(ChangeType.MODIFY, ShadowType.class);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) Test(org.testng.annotations.Test)

Example 10 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestUnix method test136MeddleWithAccountAndReconcileUserLargo.

/**
	 * Modify the account directly on resource: add aux object class, add the
	 * attributes. Then reconcile the user. The recon should fix it.
	 */
// MID-2883
@Test
public void test136MeddleWithAccountAndReconcileUserLargo() throws Exception {
    final String TEST_NAME = "test136MeddleWithAccountAndReconcileUserLargo";
    TestUtil.displayTestTile(this, TEST_NAME);
    Task task = taskManager.createTaskInstance(TestUnix.class.getName() + "." + TEST_NAME);
    OperationResult result = task.getResult();
    PrismObject<UserType> userBefore = findUserByUsername(USER_LARGO_USERNAME);
    openDJController.executeLdifChange("dn: " + accountLargoDn + "\n" + "changetype: modify\n" + "add: objectClass\n" + "objectClass: posixAccount\n" + "-\n" + "add: homeDirectory\n" + "homeDirectory: /home/largo\n" + "-\n" + "add: uidNumber\n" + "uidNumber: " + USER_LARGO_UID_NUMBER + "\n" + "-\n" + "add: gidNumber\n" + "gidNumber: " + USER_LARGO_UID_NUMBER + "\n");
    Entry entryBefore = openDJController.fetchEntry(accountLargoDn);
    display("Entry before", entryBefore);
    dummyAuditService.clear();
    // WHEN
    TestUtil.displayWhen(TEST_NAME);
    reconcileUser(userBefore.getOid(), task, result);
    // THEN
    TestUtil.displayThen(TEST_NAME);
    result.computeStatus();
    TestUtil.assertSuccess(result);
    PrismObject<UserType> userAfter = findUserByUsername(USER_LARGO_USERNAME);
    assertNotNull("No user after", userAfter);
    display("User after", userAfter);
    assertUserPosix(userAfter, USER_LARGO_USERNAME, USER_LARGO_FIST_NAME, USER_LARGO_LAST_NAME, USER_LARGO_UID_NUMBER);
    String accountOid = getSingleLinkOid(userAfter);
    PrismObject<ShadowType> shadow = getShadowModel(accountOid);
    display("Shadow (model)", shadow);
    assertBasicAccount(shadow);
// TODO: check audit
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) Test(org.testng.annotations.Test)

Aggregations

Entry (org.opends.server.types.Entry)87 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)45 Test (org.testng.annotations.Test)44 Task (com.evolveum.midpoint.task.api.Task)43 ShadowType (com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType)40 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)29 UserType (com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)14 QName (javax.xml.namespace.QName)11 SearchResultEntry (org.opends.server.types.SearchResultEntry)11 LDIFImportConfig (org.opends.server.types.LDIFImportConfig)10 LDIFReader (org.opends.server.util.LDIFReader)10 AbstractModelIntegrationTest (com.evolveum.midpoint.model.test.AbstractModelIntegrationTest)9 OrgType (com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType)8 PrismObject (com.evolveum.midpoint.prism.PrismObject)6 JarEntry (java.util.jar.JarEntry)6 ChangeRecordEntry (org.opends.server.util.ChangeRecordEntry)6 ModifyChangeRecordEntry (org.opends.server.util.ModifyChangeRecordEntry)6 ModifyDNChangeRecordEntry (org.opends.server.util.ModifyDNChangeRecordEntry)6 ItemPath (com.evolveum.midpoint.prism.path.ItemPath)5 PrismReferenceValue (com.evolveum.midpoint.prism.PrismReferenceValue)4