[UPDATE] signup 로직 변경

main
bjkim 11 months ago
parent 4fd139ab38
commit a7e807cba5

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

Loading…
Cancel
Save