@PostMapping("/s/user/{id}/update")
public @ResponseBody String update(
@PathVariable Long id,
@Valid UserRequestDto.UpdateInDto updateInDTO,
Errors errors,
@AuthenticationPrincipal MyUserDetails myUserDetails) {
if (id != myUserDetails.getUser().getId()) {
throw new Exception403("권한이 없습니다");
}
User user = userService.회원수정(id, updateInDTO);
// 세션 동기화
myUserDetails.setUser(user);
session.setAttribute("sessionUser", user);
return Script.href("회원정보 수정 성공", "/");
}
@Transactional
public User 회원수정(Long id, UserRequestDto.UpdateInDto updateInDTO) {
User userPS = userRepository.findById(id)
.orElseThrow(() -> new Exception400("id", "해당 유저가 존재하지 않습니다. "));
updateInDTO.setPassword(passwordEncoder.encode(updateInDTO.getPassword()));
userPS.update(updateInDTO.getPassword(), updateInDTO.getEmail());
return userPS;
}
${user.id} = 로그인 한 상태의 id 값을 브라우저로부터 받는다.
비밀번호 0807
회원수정 클릭하면 Script가 뜨고 메인 화면으로
h2 확인