@Override public void createPasswordResetRequest(String emailOrUsername) throws UserNotFoundException { Preconditions.checkNotNull(emailOrUsername); User user = this.userStore.get().findUserByEmailOrUserName(emailOrUsername); if (user == null) { throw new UserNotFoundException("No user found with this email or usernmae"); } AccountsSettings settings = getSettings(); final String secret = generateSecret(); this.userStore.get().createPasswordResetRequest(user, secret); sendPasswordResetMail(user, secret, settings); }
private void create(User user, Role initialRole, Map<String, Object> additionalContext) throws InvalidEntityException, EntityAlreadyExistsException, PasswordDoesNotMeetRequirementsException { AccountsSettings settings = getSettings(); Boolean validationIsRequired = settings.getUserValidation().getValue(); if (user.getPassword().length() < settings.getPasswordRequirements().getMinimalLength()) { throw new PasswordDoesNotMeetRequirementsException("Provided password does not meet requirements"); } if (validationIsRequired) { if (context.getTenant() != null) { throw new RuntimeException("Validation is not supported for local users"); } user.setActive(false); user.setValidationKey(generateSecret()); } else { user.setActive(true); } user.setPassword(this.passwordManager.hashPassword(user.getPassword())); final User createdUser = this.userStore.get().create(user, initialRole); if (validationIsRequired) { sendValidationMail(createdUser, settings, additionalContext); } }