From f33786a8ebb7afa73bd4311410a3c2e220f24845 Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Tue, 13 May 2025 14:41:09 +0900 Subject: [PATCH] feat: implement user role management in session and update Header component to display user ID --- README.md | 17 +++++++++++++++++ src/app/api/auth/route.ts | 15 +++++++++++++++ src/components/ui/common/Header.tsx | 21 ++------------------- src/store/session.ts | 1 + src/types/Auth.ts | 1 + 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 278511e..950676f 100644 --- a/README.md +++ b/README.md @@ -41,3 +41,20 @@ onClick={() => popupController.setZipCodePopup(false)} # useEffect 정리 - client url pathname 변경시 -> @/components/ui/Header.tsx + +# User Role 구분 + +session에 있는 role 키로 구분한다 + +- T01 / T01 -> Super user\ + session.role === 'T01' +- A03 / 1234 -> T01을 제외한 1차점\ + session.role === 'Admin' +- 2A03 / 1234 -> 2차점\ + session.role === 'Admin_Sub' +- constA03_01 / 1234 -> 시공사\ + session.role === 'Builder' +- partners -> Q.Partners 계정\ + session.role === 'Partner' +- 이외의 경우 -> 굳이 체크할 필요 없어보임\ + session.role === 'User' diff --git a/src/app/api/auth/route.ts b/src/app/api/auth/route.ts index 1c74952..af42d54 100644 --- a/src/app/api/auth/route.ts +++ b/src/app/api/auth/route.ts @@ -49,6 +49,21 @@ export async function POST(request: Request) { session.custCd = result.data.data.custCd session.builderNo = result.data.data.builderNo session.isLoggedIn = true + + if (result.data.data.userId === 'T01') { + session.role = 'T01' + } else if (result.data.data.groupId === '60000') { + session.role = 'Admin' + } else if (result.data.data.groupId === '70000' && result.data.data.builderNo === null) { + session.role = 'Admin_Sub' + } else if (result.data.data.groupId === '70000' && result.data.data.builderNo !== null) { + session.role = 'Builder' + } else if (result.data.data.groupId === '90000' && result.data.data.builderNo !== null) { + session.role = 'Partner' + } else { + session.role = 'User' + } + console.log('end session edit!') await session.save() diff --git a/src/components/ui/common/Header.tsx b/src/components/ui/common/Header.tsx index 30e646f..8129c81 100644 --- a/src/components/ui/common/Header.tsx +++ b/src/components/ui/common/Header.tsx @@ -14,7 +14,6 @@ import { useTitle } from '@/hooks/useTitle' import { axiosInstance } from '@/libs/axios' import 'swiper/css' -import { confirmParamsSerialize } from '@/utils/window' export default function Header() { const router = useRouter() @@ -39,22 +38,6 @@ export default function Header() { } } - const handleYes = () => { - console.log('yes') - } - - const handleNo = () => { - console.log('no') - } - - const handleCofirm = () => { - window.neoConfirm( - 'よろしいですか?', - () => console.log('yes'), - () => console.log('no'), - ) - } - return ( <>
@@ -62,7 +45,7 @@ export default function Header() {
{backBtn && (
- +
)}

@@ -137,7 +120,7 @@ export default function Header() {
  • - +
  • diff --git a/src/store/session.ts b/src/store/session.ts index a0e828d..5b70d1f 100644 --- a/src/store/session.ts +++ b/src/store/session.ts @@ -41,6 +41,7 @@ const initialState: InitialState = { custCd: null, builderNo: null, isLoggedIn: false, + role: null, }, } diff --git a/src/types/Auth.ts b/src/types/Auth.ts index 8920afc..0bfe693 100644 --- a/src/types/Auth.ts +++ b/src/types/Auth.ts @@ -27,4 +27,5 @@ export interface SessionData { custCd: null builderNo: null isLoggedIn: boolean + role: string | null }