게시물을 작성하고 나서 작성자만 게시물을 수정, 삭제 버튼이 보이도록 구현을 하고자 한다.
또한, 삭제는 ADMIN(관리자) 권한이 있을때도 가능하게 하였다.
참고로 아래 코드의 detail은 Model에 저장된 데이터의 지정된 이름이다.
- 우리의 프로젝트에는 principal이 writerId로 설정되어있다.
<div>
<!-- 현재유저의 username = 작성자ID일치한 경우 수정버튼 활성화 -->
<span th:if="${#authentication.name == detail.writerId}">
<button class="edit_button" type="button" id="btn-edit">게시물 수정</button>
</span>
</div>
thymeleaf if문을 이용하여 조건에 맞을때만 수정버튼이 보이도록 해주었다.
아래는 삭제버튼을 구현한 부분이다.
<div>
<th:block th:if="${#authentication.name == detail.writerId or #authorization.expression('hasRole(''ROLE_ADMIN'')')}">
<form th:action="|/notice-boards/${detail.bno}|" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="hidden" name="rno" value="0">
<button>게시물 삭제</button>
</form>
</th:block>
</div>
if문을 보면 수정버튼과 다르게 #authorization.expression('hasRole(''ROLE_ADMIN'')') 조건을 추가해줘서 관리자 Role이 부여되었을때 버튼이 보이게 해주었다.
'SpringBoot Project' 카테고리의 다른 글
[SpringBoot] 게시판 Pagination(Pageable 이용한 페이징), 리스트 불러오기 (0) | 2023.01.29 |
---|---|
[SpringBoot] 게시판 게시물 조회수 기능 (0) | 2023.01.28 |
[SpringBoot] 게시판 게시물 삭제하기(delete) (0) | 2023.01.23 |