@RequestMapping(
      value = "/account/reset_password/init",
      method = RequestMethod.POST,
      produces = MediaType.TEXT_PLAIN_VALUE)
  @Timed
  public ResponseEntity<?> requestPasswordReset(
      @RequestBody String mail, HttpServletRequest request) {

    User user = userService.requestPasswordReset(mail);

    if (user != null) {
      String baseUrl =
          request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
      mailService.sendPasswordResetMail(user, baseUrl);
      return new ResponseEntity<>("e-mail was sent", HttpStatus.OK);
    } else {
      return new ResponseEntity<>("e-mail address not registered", HttpStatus.BAD_REQUEST);
    }
  }
  /** POST /register -> register the user. */
  @RequestMapping(
      value = "/register",
      method = RequestMethod.POST,
      produces = MediaType.TEXT_PLAIN_VALUE)
  @Timed
  public ResponseEntity<?> registerAccount(
      @Valid @RequestBody UserDTO userDTO, HttpServletRequest request) {
    User user = userRepository.findOneByLogin(userDTO.getLogin());
    if (user != null) {
      return ResponseEntity.badRequest()
          .contentType(MediaType.TEXT_PLAIN)
          .body("login already in use");
    } else {
      if (userRepository.findOneByEmail(userDTO.getEmail()) != null) {
        return ResponseEntity.badRequest()
            .contentType(MediaType.TEXT_PLAIN)
            .body("e-mail address already in use");
      }
      user =
          userService.createUserInformation(
              userDTO.getLogin(),
              userDTO.getPassword(),
              userDTO.getFirstName(),
              userDTO.getLastName(),
              userDTO.getEmail().toLowerCase(),
              userDTO.getLangKey());
      String baseUrl =
          request.getScheme()
              + // "http"
              "://"
              + // "://"
              request.getServerName()
              + // "myhost"
              ":"
              + // ":"
              request.getServerPort(); // "80"

      mailService.sendActivationEmail(user, baseUrl);
      return new ResponseEntity<>(HttpStatus.CREATED);
    }
  }