@RequestMapping(method = RequestMethod.POST) protected String formSubmit( @Valid @ModelAttribute("command") RegistrationForm form, BindingResult result, HttpServletRequest request) throws EuropeanaQueryException { // todo: query exception?? if (result.hasErrors()) { log.info("The registration form has errors"); clickStreamLogger.logUserAction(request, ClickStreamLogger.UserAction.REGISTER_FAILURE); return "register"; } TokenRepo.RegistrationToken token = tokenRepo.getRegistrationToken( form.getToken()); // the token was validated in handleRequestInternal token.delete(); User user = userRepo.createUser(token.getEmail()); // use email from token. not from form. user.setUserName(form.getUserName()); user.setPassword(form.getPassword()); user.setEnabled(true); user.setRole(User.Role.ROLE_USER); user.save(); sendNotificationEmail(user); clickStreamLogger.logUserAction(request, ClickStreamLogger.UserAction.REGISTER_SUCCESS); return "register-success"; }
@RequestMapping(method = RequestMethod.GET) protected String getRequest( @RequestParam("token") String tokenKey, @ModelAttribute("command") RegistrationForm regForm, HttpServletRequest request) throws EuropeanaQueryException { // todo: query exception?? log.info("Received get request, putting token into registration form model attribute"); TokenRepo.RegistrationToken token = tokenRepo.getRegistrationToken(tokenKey); if (token == null) { throw new EuropeanaQueryException( QueryProblem.TOKEN_EXPIRED .toString()); // todo: query exception?? "Registration must be retried, no token for // "+tokenKey } regForm.setToken(token.getId()); regForm.setEmail(token.getEmail()); clickStreamLogger.logUserAction(request, ClickStreamLogger.UserAction.REGISTER); return "register"; }