ArticleManager Delete 작성자만 지울 수 있도록 하는 걸 구현중이다.
private void doDelete() {
System.out.println("==게시글 삭제==");
int id = Integer.parseInt(cmd.split(" ")[2]);
Article foundArticle = getArticleById(id);
if (foundArticle == null) {
System.out.println("해당 게시글은 없습니다");
return;
}
if(!isLogined()){
System.out.println("삭제 권한이 없습니다.");
}else if(currentUser.getName().equals(foundArticle.getAuthor())){
articles.remove(foundArticle);
System.out.println(id + "번 게시글이 삭제되었습니다");
}else {
System.out.println("삭제 권한이 없습니다.");
}
}
이렇게 구현했는데 잘 된다. 근데 다른 문제를 발견했다. 테스트용 데이터로 한번 더 해보려고 구현해 둔 로그아웃을 해서 다시 로그인 하려고 했는데
명령어) member logout
로그인 하지 않음.
명령어) member login
이미 로그인 되어있음.
명령어)
이렇게 뜬다. 그래서 다시 살펴 보려고 한다.
private void doLogout() {
if (isLogined()) {
System.out.println("로그아웃.");
currentUser = null;
else {
System.out.println("로그인 하지 않음.");
}
}
아 그냥 내가 실수로 앞에 !를 붙혀서 코드가 이상해진거였다. !만 빼니까 해결.
이제는 수정을 권한 있는 사람만 할 수 있게 하면 된다. 뭐 delete랑 비슷하게 하면 되지 않을까?
private void doModify() {
System.out.println("==게시글 수정==");
int id = Integer.parseInt(cmd.split(" ")[2]);
Article foundArticle = getArticleById(id);
if (foundArticle == null) {
System.out.println("해당 게시글은 없습니다");
return;
}
if(!isLogined()){
System.out.println("수정 권한이 없습니다.");
}else if(currentUser.getName().equals(foundArticle.getAuthor())){
System.out.println("기존 제목 : " + foundArticle.getTitle());
System.out.println("기존 내용 : " + foundArticle.getBody());
System.out.print("새 제목 : ");
String newTitle = sc.nextLine();
System.out.print("새 내용 : ");
String newBody = sc.nextLine();
foundArticle.setTitle(newTitle);
foundArticle.setBody(newBody);
foundArticle.setUpdateDate(Util.getNow());
System.out.println(id + "번 게시글이 수정되었습니다.");
}else {
System.out.println("수정 권한이 없습니다.");
}
}
오케이 금방 끝냈다.
오늘은 여기까지!
'Coding History' 카테고리의 다른 글
국비 지원 IT(웹앱개발) 취업반 강의 21일차 (ArticleManager) (0) | 2024.07.04 |
---|---|
2024. 07. 04 문제풀이 (0) | 2024.07.04 |
국비 지원 IT(웹앱개발) 취업반 강의 20일차 (ArticleManager) (0) | 2024.07.03 |
2024. 07. 02. 문제풀이 (1) | 2024.07.02 |
국비 지원 IT(웹앱개발) 취업반 강의 19일차 (ArticleManager) (0) | 2024.07.02 |