어제 업그레이드
내가 작성한 게시물/댓글에 대한 수정 및 삭제 버튼만 표시
1. 어제의 논리에 문제가 있었습니다.
우체국에서는 문제가 없었습니다.
문제는 댓글과 댓글입니다.
<div>
<a id="update-button" href="#" onclick="updatePost('${title}','${content}','${image}','${id}')" class="tag-cloud-link" style="font-size: 13px; color:black; cursor: pointer; display:none;">수정하기</a>
<a id="delete-button" onclick="deletePost()" class="tag-cloud-link" style="font-size: 13px; color:black; cursor: pointer; display:none;">삭제하기</a>
</div>
if (writer === nickname) {
$('#update-button').show();
$('#delete-button').show();
}
그런 논리인데 댓글과 큰댓글이 for 문을 통하는 게 그리웠어요.
모든 if 문을 살펴본 후 for 문 전체를 살펴보는 동안 닉네임과 작성자가 적어도 하나 이상 일치하면 나타납니다.
근데 또 뜨는건 첫댓글/최다댓글뿐..?
그럼에도 불구하고! 문제가 있는 논리였습니다.
// 로그인 한 사용자의 경우 nickname비교
function getLoggedInUserNickname(callback){
sendAuthorizedRequest("http://43.200.238.79:8080/users/profiles", "GET", function (response) {
var nickname = response.nickname;
callback(nickname);
});
}
sendAuthorizedRequest 함수는 비동기식입니다.
sendAuthorizedRequest가 먼저 완료된 다음 적대적인 ajax 함수가 호출되어 제대로 작동하지 않았습니다.
sendAuthorizedRequest 함수를 콜백 변수로 호출한 후
function petboast_detail() {
const urlParams = new URLSearchParams(window.location.search);
const id = urlParams.get('id');
$.ajax({
url: 'http://url/posts/' + id,
type: 'GET',
data: {},
contentType: "application/json;",
success: function (response) {
Ajax 내에서 다시 호출할 수 있도록 작성했습니다.
getLoggedInUserNickname(function(nickname) {
if (writer === nickname) {
$('#update-button').show();
$('#delete-button').show();
}});
그 후 아래와 같은 문제가 발생했습니다.
2. 관리자 로그인 시
로그인한 사용자의 역할이 관리자인 경우
다루지 않은 것입니다.
위의 코드에서
getLoggedInUserNickname 함수 아래
function IsAdmin(callback){
sendAuthorizedRequest("http://url/users/profiles", "GET", function (response) {
var isRoleAdmin = response.role === "ROLE_ADMIN";
callback(isRoleAdmin); // isRoleAdmin 값을 콜백 함수의 인자로 전달
})
}
관리자인지 확인하는 기능을 작성하십시오.
IsAdmin(function(isRoleAdmin) {
if (isRoleAdmin === true) {
$('#update-button').show();
$('#delete-button').show();
}
});
넣어
https://www.youtube.com/watch?v=tQX5LCtV2GU
그리고 배포된 웹사이트와 함께 녹화된 새로운 비디오.