@RequestMapping("/{id}/{userId}/answers") public String answers(@PathVariable Long id, Integer page, Model model) throws Exception { page = revisedPage(page); model.addAttribute( "answers", qnaService.findsAnswerByWriter( id, createPageableByAnswerCreatedDate(page, DEFAULT_PAGE_SIZE))); model.addAttribute("socialUser", userService.findById(id)); return "users/answers"; }
@RequestMapping("{id}/changepassword") public String changePasswordForm( @LoginUser SocialUser loginUser, @PathVariable Long id, Model model) throws Exception { SocialUser socialUser = userService.findById(id); if (!loginUser.isSameUser(socialUser)) { throw new IllegalArgumentException("You cann't change another user!"); } model.addAttribute("socialUser", socialUser); model.addAttribute("password", new PasswordDto(id)); return "users/changepassword"; }
@RequestMapping(value = "{id}", method = RequestMethod.PUT) public String update(@LoginUser SocialUser loginUser, @PathVariable Long id, UserForm userForm) throws Exception { SocialUser socialUser = userService.findById(id); if (!loginUser.isSameUser(socialUser)) { throw new IllegalArgumentException("You cann't change another user!"); } userService.updateSlippUser(loginUser, userForm.getEmail(), userForm.getUserId()); return "redirect:/users/logout"; }
@RequestMapping("{id}/form") public String updateForm(@LoginUser SocialUser loginUser, @PathVariable Long id, Model model) throws Exception { SocialUser socialUser = userService.findById(id); if (!loginUser.isSameUser(socialUser)) { throw new IllegalArgumentException("You cann't change another user!"); } model.addAttribute("user", new UserForm(socialUser.getUserId(), socialUser.getEmail())); model.addAttribute("socialUser", socialUser); return "users/form"; }
@RequestMapping("/{id}/{userId}") public String profile(@PathVariable Long id, @PathVariable String userId, Model model) throws Exception { model.addAttribute( "questions", qnaService.findsQuestionByWriter( id, createPageableByQuestionUpdatedDate(DEFAULT_PAGE_NO, DEFAULT_SUMMARY_PAGE_SIZE))); model.addAttribute( "answers", qnaService.findsAnswerByWriter( id, createPageableByAnswerCreatedDate(DEFAULT_PAGE_NO, DEFAULT_SUMMARY_PAGE_SIZE))); model.addAttribute("socialUser", userService.findById(id)); return "users/profile"; }
@RequestMapping(value = "{id}/changepassword", method = RequestMethod.POST) public String changePassword( @LoginUser SocialUser loginUser, @PathVariable Long id, PasswordDto password, Model model) throws Exception { SocialUser socialUser = userService.findById(id); if (!loginUser.isSameUser(socialUser)) { throw new IllegalArgumentException("You cann't change another user!"); } try { userService.changePassword(loginUser, password); return "redirect:/users/logout"; } catch (BadCredentialsException e) { model.addAttribute("errorMessage", e.getMessage()); model.addAttribute("socialUser", socialUser); model.addAttribute("password", new PasswordDto(id)); return "users/changepassword"; } }
@RequestMapping("/{id}") public String profileById(@PathVariable Long id) throws Exception { SocialUser socialUser = userService.findById(id); return String.format( "redirect:/users/%d/%s", id, URLEncoder.encode(socialUser.getUserId(), "UTF-8")); }