음원 등록이 가능한 권한은 artist 계정이어야 하며,
수정은 수정할 게시물의 artist값과 과 계정의 nickname이 같을 경우에만 가능하다.
이외의 권한에 대해서 검사하는 함수를 만들었고, 통과 여부에 따라 렌더되는 값이 달라지도록 했다.
여기서 또 체크해야할 것은 음원 등록 버튼으로 이 페이지에 들어왔는지,
수정 버튼으로 이 페이지에 들어왔는지 여부도 확인해야한다.
음원 상세 페이지에서 음원 수정 버튼을 눌렀을때,
수정 버튼으로 접속한 여부를 가진 데이터를 통해 확인하도록 했다.
이 데이터는 새로고침시 삭제되면 안되기 때문에 localstorage에 저장하기로 했는데,
이는 좀 더 지켜봐야할듯 하다.
// 접근 권한 유효성 검사 함수
function isValidUser () {
// 음원 등록으로 들어왔을 경우
if (!isModify) {
return userInfo.admin === 'artist';
}
// 수정 버튼으로 들어왔을 경우
else {
return userInfo.admin === 'artist' && userInfo.nickName === trackDetail.user.nickname;
}
}
return (
<div>
{isValidUser()
? <form id='modi-create' onSubmit={() => { requestCreate(); }}>
<fieldset>
<legend className='legend-Hidden'>음원 등록 폼</legend>
...
</div>
</fieldset>
</form>
: <h1>잘못된 접근 입니다.</h1>}
</div>
);
솔직히 음원 상세 정보를 localstorage에 저장하는건 좋지 못한 방향인듯하다.
음원 상세 정보는 아티스트에게는 특히 민감한 정보이기 때문에,
이 부분은 이후 수정하는걸로 생각해야겠다.