Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

공지사항 목록 페이지 이동 링크 추가 / 마이페이지에 공지사항, 관리자 페이지 추가 #754

Merged
merged 14 commits into from
Oct 18, 2023

Conversation

Gilpop8663
Copy link
Collaborator

@Gilpop8663 Gilpop8663 commented Oct 16, 2023

🔥 연관 이슈

close: #753

📝 작업 요약

  • 공지사항 목록 페이지 이용가능하도록 링크 추가 / 마이페이지에 공지사항, 관리자 페이지 추가
  • userInfo에 role 추가
  • 마이페이지에서 유저 권한에 따라 다르게 렌더링 되도록 하기
  • 관리자 페이지에서 관리자가 아니면 접근이 불가능하도록 설정
  • 카카오 버튼 이미지 고화질로 변경

⏰ 소요 시간

1시간

🔎 작업 상세 설명

path url

관리자 신고내역 페이지 : admin/reports/pending
관리자 공지사항 페이지 : admin/�notices


사진

비회원

image image

회원

image image

관리자

image image

로그인 페이지 카카오 버튼 이미지 수정

약간 흐려서 완성도가 낮아보인다는 피드백을 들었어서 뚜렷하게 변경

변경 전

image

변경 후

image

🌟 논의 사항

�관리자 페이지로 url을 직접 입력했을 때 관리자 계정임에도 접근이 불가능하다고 나오는데요. 이러한 것은 useEffect에서 토큰을 통해 자동 로그인이 진행된 후 유저 정보를 가져오는데, 이러한 과정을 거치려면 렌더링이 끝나야 되기 때문에 PrivateRoute에서는 관리자가 url로 직접 들어오는 것을 허용할 수 없었습니다

그렇지만 관리지이기 때문에 마이페이지에서 직접 들어오는 것은 가능하므로 괜찮은 수준의 문제라고 생각하여 PR 올리게 되었어요

@github-actions
Copy link

github-actions bot commented Oct 16, 2023

⚡️ Lighthouse report!

Category Score
🟠 Performance 70
🟠 Accessibilty 89
🟢 SEO 100
🟠 PWA 89
Category Score
🟢 First Contentful Paint 0.6 s
🟠 Largest Contentful Paint 3.0 s
🔴 Total Blocking Time 1,240 ms
🟢 Cumulative Layout Shift 0
🟢 Speed Index 2.7 s

Copy link
Member

@inyeong-kang inyeong-kang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우스~ 오늘 오전에 회의한 내용을 굉장히 빠르게 반영해주셨군요? (그저 ✨..)
제가 작업한 내용과 살짝 다른 부분이 있어 코멘트 남겼어요!
내일 이야기해보아요~~~

fe-리뷰완

});

test('클라이언트에서 사용하는 유저 정보 API 명세가 [nickname, gender, birthYear, postCount, voteCount]으로 존재해야한다', async () => {
test('클라이언트에서 사용하는 유저 정보 API 명세가 [nickname, gender, birthYear, postCount, voteCount, role]으로 존재해야한다', async () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혹시 hasLatestAlarm 도 추가해주실 수 있나요? (test fail 이 두려워져서..😅)


import * as S from './style';

export default function GuestProfile() {
interface GuestProfileProps {
isLargeKaKao?: boolean;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@@ -19,4 +20,6 @@ export const PATH = {
USER_VOTE: `${BASE_PATH.USER}/votes`,
USER_INFO: `${BASE_PATH.USER}/myPage`,
USER_INFO_REGISTER: `${BASE_PATH.USER}/register`,
ADMIN_REPORT_LIST: `${BASE_PATH.ADMIN}/reports`,
ADMIN_CATEGORY_LIST: `${BASE_PATH.ADMIN}/categories`,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 path 명을 이렇게 지으셨군요..🤔
혹시 카테고리 목록 관련된 라우터는 미리 만들어놓으신건가요??

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 요런식으로 지었는데 한번 논의가 필요할거 같네요!!
image

birthYear: 1989,
postCount: 4,
voteCount: 128,
role: 'ADMIN',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hasLatestAlarm 값도 미리 추가해주시면 감사하겠습니다..!!!!

// const isAuthenticated = true;
if (!isGuestAllowed && !isLoggedIn) {
alert('해당 페이지에 접근하려면 로그인이 필요합니다.');
if (isAdminAllowed && userInfo?.role !== 'ADMIN') {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

context-api 로 role 값을 저장하는 경우, 관리자 페이지에 진입하면서 role을 useContext로 꺼내오기 때문에, 의도대로 페이지 진입을 막기 어려워지지 않을까요?🤔

개인정보 등록 페이지도 같은 이슈가 있어서, hasEssentialInfo 라는 값을 userInfo (유저 정보 API response)가 아닌 로그인 API response에서 받아오도록 했어서.. 우스의 생각이 궁금합니다!!

Copy link
Member

@inyeong-kang inyeong-kang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오늘 2시 페어프로그래밍을 통해 충돌이 예상되는 부분을 해결하였습니다~~

Copy link
Collaborator

@chsua chsua left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우스 최강입니다!!

혹시 그 프라이빗 라우터에 isGuestAllowed={true}>이던데,
게시글 상세페이지와 랭킹페이지는 true처리가 안된 것 같아요!
필요할 것 같습니다!

그리고 pr에도 admin/category 로 되어있는데 해당 부분 나중에 다시 보면 헷갈릴 것 같아서 수정 가능할까요??
고생하셨습니다!

@@ -19,4 +21,6 @@ export const PATH = {
USER_VOTE: `${BASE_PATH.USER}/votes`,
USER_INFO: `${BASE_PATH.USER}/myPage`,
USER_INFO_REGISTER: `${BASE_PATH.USER}/register`,
ADMIN_PENDING_REPORT: `${BASE_PATH.ADMIN}${BASE_PATH.REPORTS}/pending`,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pending이 되었군요 😆

path: PATH.NOTICES,
element: (
<PrivateRoute isOnlyAdminAllowed={true} path={PATH.USER_INFO}>
<div>어드민 카테고리 목록 페이지</div>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기 수정 안되었습니다!

@chsua
Copy link
Collaborator

chsua commented Oct 18, 2023

fe-리뷰완

@Gilpop8663
Copy link
Collaborator Author

image

대시보드에서 접근 가능하도록 했습니다

fe-리뷰요청

@Gilpop8663 Gilpop8663 changed the title 마이페이지 비회원 이용가능하도록 하기 / 마이페이지에 공지사항, 관리자 페이지 추가 공지사항 목록 페이지 이동 링크 추가 / 마이페이지에 공지사항, 관리자 페이지 추가 Oct 18, 2023
Copy link
Collaborator

@chsua chsua left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!!

작성하신 코드 롤백되어서 아쉽네요!
빠른 피드백, 수정 최고에요!

@Gilpop8663 Gilpop8663 merged commit edbdb54 into dev Oct 18, 2023
1 check passed
@woo-chang woo-chang deleted the feat/#753 branch October 18, 2023 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants