2024-02-20 (49일차) - 댓글 수정/삭제

·2024년 2월 20일

📅 2024-02-20, 49일차

댓글 수정/삭제

1.버튼 구현

  • 로그인 한 경우에만 수정/삭제버튼이 나올 수 있게, 로그인 하지 않으면 수정/삭제버튼이 보이지 않도록 처리
  • 문제상황:
    • 댓글 작성자가 아니어도 수정/삭제 버튼이 표시 됨
    • 그나마 다행인건, 해당 댓글 작성자가 아니면 삭제권한이 없다고 되돌려 보냄
<c:if test="${rq.isLogined() }">
			<td><a class="btn btn-sm btn-outline" href="../reply/modify?id=${reply.id }">수정</a></td>
			<td><a class="btn btn-sm btn-outline" onclick="if(confirm('정말 삭제하시겠습니까?') == false) return false;"
			href="../reply/doDelete?relId=${reply.relId }&id=${reply.id }">삭제</a></td>
</c:if>
  1. 삭제 기능
  • reply컨트롤러에서 relId과 id와 함께 요청 보내서 reply레파지토리에서 쿼리스트링으로 db에서 삭제
	@Delete("DELETE FROM reply WHERE id = #{id}")
	public void deleteReply(int id);
  • 로그인 체크 -> 유무 체크 -> 권한 체크 -> 삭제
public String doDelete(HttpServletRequest req, int relId, int id) {
		Rq rq = (Rq) req.getAttribute("rq");

		Reply reply = replyService.getReply(id);

		if (reply == null) {
			return Ut.jsHistoryBack("F-1", Ut.f("존재하지 않는 댓글입니다", id));
		}

		ResultData loginedMemberCanDeleteRd = replyService.userCanDelete(rq.getLoginedMemberId(), relId, reply);

		if (loginedMemberCanDeleteRd.isSuccess()) {
			replyService.deleteReply(id);
		}

		return Ut.jsReplace(loginedMemberCanDeleteRd.getResultCode(), loginedMemberCanDeleteRd.getMsg(),
				"../article/detail?id=" + relId);
	}
profile
hello world

0개의 댓글