[개인 프로젝트] 10일차 회고

·2024년 7월 29일

개인 프로젝트

목록 보기
11/16
post-thumbnail

오늘의 회고록

  • comment 기능의 댓글 작성, 목록 조회, 댓글 삭제 기능을 완성했고, 댓글을 달면 포스트잇을 하나씩 받도록 했다.
    그리고 본인이 작성한 댓글만 삭제 가능하도록 에러 처리를 해줬는데, 방금 @PreAuthorize 라는 어노테이션을 알게되서 이걸 사용해 본인&관리자만 삭제 가능하도록 변경할 예정이다.

  • report 기능의 댓글 신고, 목록 조회, 신고 수락, 신고 거절 기능을 완성했다.

  • 이때 댓글이 신고되면 일단 댓글 목록에서 보이지 않게 하기 위해 use_yn -> false로 변경해주고 신고가 수락되면 그대로, 신고가 거절되면 다시 use_yn -> true로 변경한다.

    • 신고를 수락하든 거절하든 둘 중 하나를 선택하면 report 테이블의 use_yn 컬럼은 무조건 false가 되도록 했다. 그래야 신고 처리를 한 댓글과 신고 처리를 하지 않은 댓글을 구분할 수 있기 때문이다.
	// 신고 수락
    @PatchMapping("/report/{reportId}/accept")
    @Secured("ROLE_ADMIN")
    public ResponseEntity<Void> acceptReport(@PathVariable Long reportId) {
        reportService.acceptReport(reportId);

        return ResponseEntity.ok().build();
    }
  • 어드민만 신고 수락/거절이 가능하도록 @Secured 어노테이션을 사용했다.
    권한 설정 어노테이션에 대해 좀 더 찾아봤는데 보통 하나의 권한만 설정해줄 땐 @Secured를 사용하고, 작성자&어드민 처럼 두 개 이상의 어노테이션을 설정해줘야할 땐 @PreAuthorize 나 @PostAuthorize 를 사용한다. 이건 위에서도 언급했듯 내일 post와 comment에 직접 적용해 볼 예정이다.

권한 어노테이션 적용 참고 사이트
https://steemit.com/kr-dev/@igna84/spring-security-preauthorize-postauthorize

내일 할 일

  • Post, Comment에 권한 설정 수정하기
  • Notice 기능 개발 완성하기
  • Scrap 기능 개발 완성하기
  • 위 3개 다 끝내면 이미지/파일 업로드 s3 연결방법 공부하기
profile
꾸준히 성장하자!

0개의 댓글