diff --git a/src/app/api/auth/route.ts b/src/app/api/auth/route.ts index 8caef42..c595ecd 100644 --- a/src/app/api/auth/route.ts +++ b/src/app/api/auth/route.ts @@ -12,7 +12,7 @@ export async function POST(request: Request) { loginId, pwd, }) - // console.log('πŸš€ ~ result ~ result:', result) + console.log('πŸš€ ~ result ~ result:', result.data) if (result.data.result.code === 200) { const cookieStore = await cookies() @@ -57,8 +57,6 @@ export async function POST(request: Request) { 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' } @@ -68,5 +66,50 @@ export async function POST(request: Request) { await session.save() } - return NextResponse.json({ code: 200, message: 'Login is Succecss!!', result: result.data.data }) + const resultForSession = { + LANG_CD: result.data.data.langCd, + CURR_PAGE: result.data.data.currPage, + ROW_COUNT: result.data.data.rowCount, + START_ROW: result.data.data.startRow, + END_ROW: result.data.data.endRow, + COMP_CD: result.data.data.compCd, + AGENCY_STORE_ID: result.data.data.agencyStoreId, + STORE_ID: result.data.data.storeId, + STORE_NM: result.data.data.storeNm, + USER_ID: result.data.data.userId, + CATEGORY: result.data.data.category, + USER_NM: result.data.data.userNm, + USER_NM_KANA: result.data.data.userNmKana, + TEL_NO: result.data.data.telNo, + FAX: result.data.data.fax, + EMAIL: result.data.data.email, + LAST_EDIT_USER: result.data.data.lastEditUser, + STORE_GUBUN: result.data.data.storeGubun, + PW_CURR: result.data.data.pwCurr, + PWD_INIT_YN: result.data.data.pwdInitYn, + APPR_STAT_CD: result.data.data.apprStatCd, + LOGIN_FAIL_CNT: result.data.data.loginFailCnt, + LOGIN_FAIL_MIN_YN: result.data.data.loginFailMinYn, + PRICE_VIEW_STAT_CD: result.data.data.priceViewStatCd, + GROUP_ID: result.data.data.groupId, + STORE_LVL: result.data.data.storeLvl, + CUST_CD: result.data.data.custCd, + BUILDER_NO: result.data.data.builderNo, + IS_LOGGED_IN: true, + ROLE: '', + } + + if (result.data.data.userId === 'T01') { + resultForSession.ROLE = 'T01' + } else if (result.data.data.groupId === '60000') { + resultForSession.ROLE = 'Admin' + } else if (result.data.data.groupId === '70000' && result.data.data.builderNo === null) { + resultForSession.ROLE = 'Admin_Sub' + } else if (result.data.data.groupId === '70000' && result.data.data.builderNo !== null) { + resultForSession.ROLE = 'Builder' + } else { + resultForSession.ROLE = 'User' + } + + return NextResponse.json({ code: 200, message: 'Login is Succecss!!', result: resultForSession }) } diff --git a/src/app/api/partner/route.ts b/src/app/api/partner/route.ts index abb63df..7d02959 100644 --- a/src/app/api/partner/route.ts +++ b/src/app/api/partner/route.ts @@ -123,6 +123,8 @@ export async function POST(request: Request) { STORE_LVL: null, CUST_CD: null, BUILDER_NO: data[0].user_seko_id, + IS_LOGGED_IN: true, + ROLE: 'Partner', } return NextResponse.json({ code: 200, message: 'Partner Login is Succecss!!', result }) diff --git a/src/components/Login.tsx b/src/components/Login.tsx index d5edc00..24b7219 100644 --- a/src/components/Login.tsx +++ b/src/components/Login.tsx @@ -3,10 +3,8 @@ import type { SessionData } from '@/types/Auth' import { useEffect, useReducer, useState } from 'react' import { useRouter } from 'next/navigation' - import { useLocalStorage } from 'usehooks-ts' import { useQuery } from '@tanstack/react-query' - import { axiosInstance } from '@/libs/axios' import { useSessionStore } from '@/store/session' diff --git a/src/components/popup/MemberInformationPopup.tsx b/src/components/popup/MemberInformationPopup.tsx index 87a8829..8cf0bae 100644 --- a/src/components/popup/MemberInformationPopup.tsx +++ b/src/components/popup/MemberInformationPopup.tsx @@ -57,9 +57,11 @@ export default function MemberInformationPopup() { - + {session.role !== 'Partner' && ( + + )} diff --git a/src/components/ui/common/Header.tsx b/src/components/ui/common/Header.tsx index da3cf49..3a2ca15 100644 --- a/src/components/ui/common/Header.tsx +++ b/src/components/ui/common/Header.tsx @@ -114,9 +114,11 @@ export default function Header() {
  • -
  • - -
  • + {session.role !== 'Partner' && ( +
  • + +
  • + )}
    diff --git a/src/libs/axios.ts b/src/libs/axios.ts index a5d355c..15127ec 100644 --- a/src/libs/axios.ts +++ b/src/libs/axios.ts @@ -75,8 +75,19 @@ export const transformObjectKeys = (obj: any): any => { if (obj !== null && typeof obj === 'object') { return Object.keys(obj).reduce((acc: any, key: string) => { - const camelKey = snakeToCamel(key) - acc[camelKey] = transformObjectKeys(obj[key]) + let transformedKey = key + + // Handle uppercase snake_case (e.g., USER_NAME -> userName) + if (/^[A-Z_]+$/.test(key)) { + transformedKey = snakeToCamel(key) + } + // Handle single uppercase word (e.g., ROLE -> role) + else if (/^[A-Z]+$/.test(key)) { + transformedKey = key.toLowerCase() + } + // Preserve existing camelCase + + acc[transformedKey] = transformObjectKeys(obj[key]) return acc }, {}) }