protected void setTaskOwner(Task task) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication == null) { throw new SystemException("Failed to get authentication object"); } UserType userType = ((MidPointPrincipal)(SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getUser(); if (userType == null) { throw new SystemException("Failed to get user from authentication object"); } task.setOwner(userType.asPrismObject()); }
public static void copyFromJAXB(UserType jaxb, RUser repo, RepositoryContext repositoryContext, IdGeneratorResult generatorResult) throws DtoTranslationException { copyFocusInformationFromJAXB(jaxb, repo, repositoryContext, generatorResult); repo.setNameCopy(RPolyString.copyFromJAXB(jaxb.getName())); repo.setFullName(RPolyString.copyFromJAXB(jaxb.getFullName())); repo.setGivenName(RPolyString.copyFromJAXB(jaxb.getGivenName())); repo.setFamilyName(RPolyString.copyFromJAXB(jaxb.getFamilyName())); repo.setHonorificPrefix(RPolyString.copyFromJAXB(jaxb.getHonorificPrefix())); repo.setHonorificSuffix(RPolyString.copyFromJAXB(jaxb.getHonorificSuffix())); repo.setEmployeeNumber(jaxb.getEmployeeNumber()); repo.setAdditionalName(RPolyString.copyFromJAXB(jaxb.getAdditionalName())); repo.setEmailAddress(jaxb.getEmailAddress()); repo.setTelephoneNumber(jaxb.getTelephoneNumber()); repo.setLocale(jaxb.getLocale()); repo.setTimezone(jaxb.getTimezone()); repo.setPreferredLanguage(jaxb.getPreferredLanguage()); repo.setTitle(RPolyString.copyFromJAXB(jaxb.getTitle())); repo.setNickName(RPolyString.copyFromJAXB(jaxb.getNickName())); //sets repo.setEmployeeType(RUtil.listToSet(jaxb.getEmployeeType())); repo.setOrganizationalUnit(RUtil.listPolyToSet(jaxb.getOrganizationalUnit())); repo.setOrganization(RUtil.listPolyToSet(jaxb.getOrganization())); } }
@Override protected String getBody(Event event, GeneralNotifierType generalNotifierType, String transport, Task task, OperationResult result) throws SchemaException { return "User " + getUserName(event) + " is going to be deactivated on " + getUser(event).getActivation().getValidTo(); }
public UserType clone() { UserType object = new UserType(); PrismObject value = asPrismObject().clone(); object.setupContainer(value); return object; }
public String formatUserName(UserType user, String oid) { if (user == null || (user.getName() == null && user.getFullName() == null)) { return oid; } if (user.getFullName() != null) { return getOrig(user.getFullName()) + " (" + getOrig(user.getName()) + ")"; } else { return getOrig(user.getName()); } }
@Override public String getDefaultRecipientAddress(UserType recipient) { return PolyString.getOrig(recipient.getName()) + " <" + recipient.getEmailAddress() + ">"; }
protected void assertUser(PrismObject<UserType> user, String oid, String name, String fullName, String givenName, String familyName, String location) { assertObjectSanity(user); UserType userType = user.asObjectable(); if (oid != null) { assertEquals("Wrong " + user + " OID (prism)", oid, user.getOid()); assertEquals("Wrong " + user + " OID (jaxb)", oid, userType.getOid()); } PrismAsserts.assertEqualsPolyString("Wrong "+user+" name", name, userType.getName()); PrismAsserts.assertEqualsPolyString("Wrong "+user+" fullName", fullName, userType.getFullName()); PrismAsserts.assertEqualsPolyString("Wrong "+user+" givenName", givenName, userType.getGivenName()); PrismAsserts.assertEqualsPolyString("Wrong "+user+" familyName", familyName, userType.getFamilyName()); if (location != null) { PrismAsserts.assertEqualsPolyString("Wrong " + user + " location", location, userType.getLocality()); } }
private void assertUserJaxb(UserType userType, boolean isObject) throws SchemaException { assertEquals("Wrong name", PrismTestUtil.createPolyStringType("jack"), userType.getName()); assertEquals("Wrong fullName (orig)", "Jack Sparrow", userType.getFullName().getOrig()); assertEquals("Wrong fullName (norm)", "jack sparrow", userType.getFullName().getNorm()); assertEquals("Wrong givenName (orig)", "Jack", userType.getGivenName().getOrig()); assertEquals("Wrong givenName (norm)", "jack", userType.getGivenName().getNorm()); assertEquals("Wrong familyName (orig)", "Sparrow", userType.getFamilyName().getOrig()); assertEquals("Wrong familyName (norm)", "sparrow", userType.getFamilyName().getNorm()); ActivationType activation = userType.getActivation(); assertNotNull("No activation", activation); assertEquals("User not enabled", ActivationStatusType.ENABLED, activation.getAdministrativeStatus()); List<ObjectReferenceType> accountRefs = userType.getLinkRef(); assertNotNull("No accountRef list", accountRefs); assertEquals("Wrong number of list entries", 3, accountRefs.size()); ObjectReferenceType ref1 = ObjectTypeUtil.findRef(USER_ACCOUNT_REF_1_OID, accountRefs); assertEquals("Wrong ref1 oid (jaxb)", USER_ACCOUNT_REF_1_OID, ref1.getOid()); assertEquals("Wrong ref1 type (jaxb)", ShadowType.COMPLEX_TYPE, ref1.getType()); ObjectReferenceType ref2 = ObjectTypeUtil.findRef(USER_ACCOUNT_REF_2_OID, accountRefs); assertEquals("Wrong ref2 oid (jaxb)", USER_ACCOUNT_REF_2_OID, ref2.getOid()); assertEquals("Wrong ref2 type (jaxb)", ShadowType.COMPLEX_TYPE, ref2.getType()); ObjectReferenceType ref3 = ObjectTypeUtil.findRef(USER_ACCOUNT_REF_3_OID, accountRefs); assertEquals("Wrong ref3 oid (jaxb)", USER_ACCOUNT_REF_3_OID, ref3.getOid()); assertEquals("Wrong ref3 type (jaxb)", ShadowType.COMPLEX_TYPE, ref3.getType()); SearchFilterType ref3Filter = ref3.getFilter(); assertNotNull("No ref3 filter (jaxb,class)", ref3Filter); assertFilterElement("ref filter (jaxb)", ref3Filter.getFilterClauseAsElement(getPrismContext())); }
@Test public void testEmptyItemsOnGet() throws Exception { System.out.println("===[ testEmptyItemsOnGet ]==="); // GIVEN UserType user = new UserType(getPrismContext()); System.out.println("User before:\n" + user.asPrismObject().debugDump()); assertEquals("Wrong # of user sub-items before 'get' operations", 0, CollectionUtils.emptyIfNull(user.asPrismContainerValue().getItems()).size()); // WHEN user.getAssignment(); user.getLinkRef(); user.getEmployeeType(); // THEN System.out.println("User after:\n" + user.asPrismObject().debugDump()); assertEquals("Wrong # of user sub-items after 'get' operations", 0, CollectionUtils.emptyIfNull(user.asPrismContainerValue().getItems()).size()); }
@Override protected String getObjectLabel(UserType object) { Validate.notNull(object); return "user " + object.getName(); } }
private AssignmentType getJudgeAssignment(String userOid) throws ObjectNotFoundException, SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException { PrismObject<UserType> user = getUser(userOid); List<AssignmentType> assignments = user.asObjectable().getAssignment(); assertEquals("Wrong num ass", 1, assignments.size()); return assignments.iterator().next(); }
@Test public void test100ObjectAdd() throws Exception { System.out.println("===[ test100ObjectAdd ]===="); UserType user = new UserType(getPrismContext()); user.setName(PolyStringType.fromOrig("john")); user.setOid("1234567890"); ObjectDelta delta = DeltaFactory.Object.createAddDelta(user.asPrismObject()); roundTrip(delta); }
public static PolyStringType getDisplayName(ObjectType object) { if (object instanceof AbstractRoleType) { return ((AbstractRoleType) object).getDisplayName(); } else if (object instanceof UserType) { return ((UserType) object).getFullName(); } else { return null; } }
@Override public String getPlaintextUserPassword(UserType user) throws EncryptionException { if (user == null || user.getCredentials() == null || user.getCredentials().getPassword() == null) { return null; // todo log a warning here? } ProtectedStringType protectedStringType = user.getCredentials().getPassword().getValue(); if (protectedStringType != null) { return protector.decryptString(protectedStringType); } else { return null; } }
@Test public void test100GoodRefImport() throws Exception { final String TEST_NAME = "test100GoodRefImport"; TestUtil.displayTestTitle(this,TEST_NAME); // GIVEN Task task = taskManager.createTaskInstance(); OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "." +TEST_NAME); FileInputStream stream = new FileInputStream(getFile(IMPORT_REF_FILE_NAME, false)); // WHEN modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result); // THEN result.computeStatus("Failed import."); display("Result after good import", result); TestUtil.assertSuccessOrWarning("Import has failed (result)", result, 2); // EqualsFilter equal = EqualsFilter.createEqual(UserType.F_NAME, UserType.class, PrismTestUtil.getPrismContext(), null, "jack"); // ObjectQuery query = ObjectQuery.createObjectQuery(equal); ObjectQuery query = ObjectQueryUtil.createNameQuery("jack", PrismTestUtil.getPrismContext()); List<PrismObject<UserType>> users = repositoryService.searchObjects(UserType.class, query, null, result); assertNotNull(users); assertEquals("Search returned unexpected results", 1, users.size()); UserType jack = users.get(0).asObjectable(); assertNotNull(jack); PrismAsserts.assertEqualsPolyString("wrong givenName", "Jack", jack.getGivenName()); PrismAsserts.assertEqualsPolyString("wrong familyName", "Sparrow", jack.getFamilyName()); PrismAsserts.assertEqualsPolyString("wrong fullName", "Cpt. Jack Sparrow", jack.getFullName()); }
@Override public Collection<String> getManagersOidsExceptUser(UserType user, boolean preAuthorized) throws SchemaException, SecurityViolationException { Set<String> retval = new HashSet<>(); for (UserType u : getManagers(user, preAuthorized)) { if (!u.getOid().equals(user.getOid())) { retval.add(u.getOid()); } } return retval; }
@Override protected String getBody(Event event, GeneralNotifierType generalNotifierType, String transport, Task task, OperationResult result) { UserType userType = getUser(event); String plainTextPassword = "IhopeYouRememberYourPassword"; try { plainTextPassword = getMidpointFunctions().getPlaintextUserPassword(userType); } catch (EncryptionException e) { //ignore...???? } StringBuilder messageBuilder = new StringBuilder("Dear "); messageBuilder.append(userType.getGivenName()).append(",\n") .append("your account was successfully created. To activate your account click on the following confiramtion link. ") .append("\n") .append(createConfirmationLink(userType, generalNotifierType, result)) .append("\n\n") .append("After your account is activated, use following credentials to log in: \n") .append("username: ") .append(userType.getName().getOrig()) .append("password: ") .append(plainTextPassword); return messageBuilder.toString(); }
@Test(expectedExceptions = IllegalArgumentException.class) public void nullResult() throws Exception { TestUtil.displayTestTitle("nullResult"); controller.addObject(new UserType().asPrismObject(), null, taskManager.createTaskInstance(), null); }
public UserType linkRef(ObjectReferenceType value) { getLinkRef().add(value); return this; }
@Test public void testUserCredentials() throws Exception{ PrismObject<UserType> oldUser = prismContext.parseObject(new File(TEST_DIR + "/user-migrate-credentials.xml")); PrismObject<UserType> newUser = migrator.migrate(oldUser); UserType newUserType = newUser.asObjectable(); assertNull("Credentials in migrated object must be null.", newUserType.getCredentials()); assertNotNull("Migrated user must contain assignment.", newUserType.getAssignment()); assertEquals("Migrated user must contain 1 assignment.", newUserType.getAssignment().size(), 1); AssignmentType superUserRole = newUserType.getAssignment().get(0); assertNotNull("Target ref in the user's assignment must not be null.", superUserRole.getTargetRef()); assertEquals(superUserRole.getTargetRef().getOid(), SystemObjectsType.ROLE_SUPERUSER.value()); }