@Override @Transactional public void changePassword(String codeAsString, String newPassword) throws ActivationCodeException { ActivationCode code = activationCodeDao.findOneByExample(new ActivationCode(codeAsString, ActivationCode.PW)); if (code == null) { throw new ActivationCodeException(ActivationCodeException.Type.notexist); } if (code.getUsed() != null && code.getUsed()) { throw new ActivationCodeException(ActivationCodeException.Type.used); } userManager.changePassword(code.getUserId(), newPassword); code.setUsed(true); activationCodeDao.save(code); }
@Override @Transactional public void finish(String activationCodeAsString) throws ActivationCodeException { ActivationCode code = activationCodeDao.findOneByExample( new ActivationCode(activationCodeAsString, ActivationCode.REGISTER)); if (code == null) { throw new ActivationCodeException(ActivationCodeException.Type.notexist); } if (code.getUsed() != null && code.getUsed()) { throw new ActivationCodeException(ActivationCodeException.Type.used); } code.setUsed(true); userManager.unlockUser(code.getUserId()); activationCodeDao.save(code); }
@Override @Transactional public void sendPasswordLink(String email) throws UserNotFoundException { User user = userManager.findUserByEmail(email); if (user == null) { throw new UserNotFoundException(email); } ActivationCode activationCode = createCode(user, ActivationCode.PW); activationCodeDao.save(activationCode); sendPasswordLinkEmail(user, activationCode.getActivationcode()); }
@Override @Transactional public User register(String email, String userName, String pw, String name) { // Do the registration logic... User user = userManager.createUser(email, userName, pw, name); ActivationCode activationCode = createCode(user, ActivationCode.REGISTER); activationCodeDao.save(activationCode); sendConfirmationEmail(user, activationCode.getActivationcode()); return user; }