@PatchMapping("/admin/upgradeAuth/{username}")
public ResponseEntity<Void> upgradeAuth(@PathVariable String username){
boolean check = userService.upgradeAuth(username);
return (check) ?
ResponseEntity.status(HttpStatus.OK).body(null) :
ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
쇼핑몰에는 일반 사용자, 상품 등록자, 관리자의 권한이 존재함
일반 사용자가 상품 등록을 원할 때 관리자가 권한을 업그레이드 시켜줌
UserService의 upgradeAuth함수를 호출하고 결과에 따라 200 또는 400의 status code를 반환
@Override
public boolean upgradeAuth(String username) {
User user = userRepository.findByUsername(username);
if(user == null) {return false;}
user.upgradeAuth(Authority.REGISTER);
User modified_user = userRepository.save(user);
return !modified_user.getUsername().isEmpty();
}
요청으로 온 username에 해당하는 엔티티를 조회
username에 해당하는 유저 정보가 없다면 null 리턴
username에 해당하는 유저 정보가 있다면 권한을 수정 후 저장