question_detail.html 수정 버튼 아래에 추가
<a
onclick="return confirm('정말로 삭제하시겠습니까?')"
th:href="@{|/question/delete/${question.id}|}"
class="delete btn btn-sm btn-outline-danger"
sec:authorize="isAuthenticated()"
th:if="${question.author != null and #authentication.getPrincipal().getUsername() == question.author.username}"
th:text="삭제"
></a>
인증된 유저만 보여주기
현재 로그인 된 사람이 글쓴이와 동일할 때
QuestionService
//질문 삭제 처리
public void delete(Question question) {
qRepo.delete(question);
}
QuestionController
//질문 삭제 처리
@PreAuthorize("isAuthenticated()")
@GetMapping("/delete/{id}")
public String questionDelete(Principal principal, @PathVariable("id") int id ) {
Question question = qService.getQuestion(id);
if(!question.getAuthor().getUsername().equals(principal.getName())){
throw new ResponseStatusException(HttpStatus.BAD_REQUEST,"삭제 권한이 없습니다.");
}
//DB에서 질문 삭제
qService.delete(question);
return "redirect:/";
}
테스트하기
'BACKEND > SpringBoot' 카테고리의 다른 글
답변 삭제 (0) | 2023.11.13 |
---|---|
답변 수정 (0) | 2023.11.13 |
질문 수정 처리 (0) | 2023.11.10 |
엔티티 변경 글쓴이 추가 및 글 목록,상세보기,답변에 반영하기 (0) | 2023.11.10 |
로그아웃 처리 (0) | 2023.11.10 |