Files
elink-test-master/src/main/java/com/eactive/httpmockserver/user/controller/AccountController.java
T
2023-08-07 10:45:13 +09:00

59 lines
2.2 KiB
Java

package com.eactive.httpmockserver.user.controller;
import com.eactive.httpmockserver.user.dto.PasswordChangeRequestDTO;
import com.eactive.httpmockserver.user.entity.StaffUser;
import com.eactive.httpmockserver.user.entity.User;
import com.eactive.httpmockserver.user.service.UserService;
import com.eactive.httpmockserver.common.security.CurrentUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Validator;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class AccountController {
@Autowired
private Validator validator;
@Autowired
private UserService userService;
@GetMapping("/change_password.do")
public String changePassword(ModelMap model, @ModelAttribute("passwordChangeRequest") PasswordChangeRequestDTO passwordChangeRequestDTO) {
return "page/updatePw";
}
@PostMapping(value = "/update_password.do")
@Transactional
public String updatePassword(ModelMap model, @ModelAttribute("passwordChangeRequest") PasswordChangeRequestDTO passwordChangeRequestDTO,
@CurrentUser StaffUser user,
BindingResult result) {
validator.validate(passwordChangeRequestDTO, result);
if (result.hasErrors()) {
model.addAttribute("errors", result);
return "page/updatePw";
}
String oldPassword = passwordChangeRequestDTO.getOldPassword();
String newPassword = passwordChangeRequestDTO.getNewPassword();
String newPassword2 = passwordChangeRequestDTO.getNewPassword2();
String resultMsg = userService.updateUserPassword(user.getUserId(), oldPassword, newPassword, newPassword2);
model.addAttribute("resultMsg", resultMsg);
model.addAttribute("passwordChangeRequest", new PasswordChangeRequestDTO());
return "page/updatePw";
}
}