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;
}
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;
}
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);
}
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);
}
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
}
Aggregations