[UPDATE] signup 로직 변경

main
bjkim 11 months ago
parent 4fd139ab38
commit a7e807cba5

@ -109,46 +109,44 @@ public class AuthController {
@PostMapping("/signup")
public ResponseEntity<?> registerUser(@Valid @RequestBody SignupRequest signUpRequest) {
if (userRepository.existsByUsername(signUpRequest.getUsername())) {
return ResponseEntity.badRequest().body(new MessageResponse("Error: Username is already taken!"));
return ResponseEntity.badRequest().body(new MessageResponse("오류: 이미 사용 중인 사용자 이름입니다."));
}
if (userRepository.existsByEmail(signUpRequest.getEmail())) {
return ResponseEntity.badRequest().body(new MessageResponse("Error: Email is already in use!"));
return ResponseEntity.badRequest().body(new MessageResponse("오류: 이미 사용 중인 이메일입니다."));
}
User user = new User(signUpRequest.getUsername(), signUpRequest.getEmail(),
encoder.encode(signUpRequest.getPassword()));
User user = new User(
signUpRequest.getUsername(),
signUpRequest.getEmail(),
encoder.encode(signUpRequest.getPassword())
);
Set<String> strRoles = signUpRequest.getRole();
Set<Role> roles = new HashSet<>();
if (strRoles == null) {
Role userRole = roleRepository.findByName(ERole.ROLE_USER)
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
roles.add(userRole);
} else {
strRoles.forEach(role -> {
switch (role) {
case "admin":
roles.add(roleRepository.findByName(ERole.ROLE_ADMIN)
.orElseThrow(() -> new RuntimeException("Error: Role is not found.")));
break;
case "mod":
roles.add(roleRepository.findByName(ERole.ROLE_MODERATOR)
.orElseThrow(() -> new RuntimeException("Error: Role is not found.")));
break;
default:
roles.add(roleRepository.findByName(ERole.ROLE_USER)
.orElseThrow(() -> new RuntimeException("Error: Role is not found.")));
if (strRoles == null || strRoles.isEmpty()) {
strRoles = Set.of("ROLE_USER");
}
for (String roleName : strRoles) {
try {
ERole eRole = ERole.valueOf(roleName);
Role role = roleRepository.findByName(eRole)
.orElseThrow(() -> new RuntimeException("오류: '" + roleName + "' 역할이 DB에 존재하지 않습니다."));
roles.add(role);
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(new MessageResponse("오류: '" + roleName + "' 역할은 유효하지 않습니다."));
}
});
}
user.setRoles(roles);
userRepository.save(user);
return ResponseEntity.ok(new MessageResponse("User registered successfully!"));
return ResponseEntity.ok(new MessageResponse("사용자 등록이 완료되었습니다."));
}
@Operation(summary = "로그아웃", description = "현재 사용자를 로그아웃하고 쿠키 및 리프레시 토큰을 삭제합니다.")
@ApiResponses({
@ApiResponse(responseCode = "200", description = "로그아웃 성공")

Loading…
Cancel
Save