public UserVO validateLoginByEmail(String email)
     throws MSMSystemException, MSMApplicationException {
   UserVO user = userManager.validateLoginByEmail(email);
   if (user.getRetCode().equals(UserVO.AUTHENTICATED)) {
     messageManager.sendTextEmail(user, EMAIL_SUBJECT_RECOVERY_PASSWORD);
   }
   return user;
 }
  public void requestAccess(UserVO userPending) throws MSMSystemException, MSMApplicationException {
    UserVO newUser = userManager.requestAccess(userPending);

    if (newUser != null) {
      try {
        // sending validation email
        messageManager.sendTextEmail(newUser, EMAIL_SUBJECT_REQUEST_ACCESS);
      } catch (EmailNotSentException e) {
        userManager.deleteNotValidatedUser(newUser.getUsername());

        throw e;
      }
    }
  }
  public boolean forgotYourPassword(String email)
      throws MSMApplicationException, MSMSystemException {
    boolean result = false;

    UserVO userVo = userManager.validateLoginByEmail(email);

    if (userVo.getRetCode().equals(UserVO.AUTHENTICATED)) {
      if ((userVo.getUserValidated() == 'n') || (userVo.getUserValidated() == 'N')) {
        throw new UserEmailNotValidatedException();
      } else {
        messageManager.sendTextEmail(userVo, EMAIL_SUBJECT_RECOVERY_PASSWORD);
        result = true;
      }
    }

    return result;
  }