feat: implement user role management in session and update Header component to display user ID

This commit is contained in:
yoosangwook 2025-05-13 14:41:09 +09:00
parent e5affe0df5
commit f33786a8eb
5 changed files with 36 additions and 19 deletions

View File

@ -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'

View File

@ -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()

View File

@ -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 (
<>
<div className="header-warp">
@ -62,7 +45,7 @@ export default function Header() {
<div className="header-inner">
{backBtn && (
<div className="back-button-wrap">
<button className="back-button" onClick={handleCofirm}></button>
<button className="back-button" onClick={() => router.back()}></button>
</div>
)}
<h2 className="logo">
@ -137,7 +120,7 @@ export default function Header() {
</button>
</li>
<li className="side-footer-item">
<button>Jynoadmin</button>
<button>{session.userId}</button>
</li>
<li className="side-footer-item">
<button onClick={() => router.push('/')}>HOME</button>

View File

@ -41,6 +41,7 @@ const initialState: InitialState = {
custCd: null,
builderNo: null,
isLoggedIn: false,
role: null,
},
}

View File

@ -27,4 +27,5 @@ export interface SessionData {
custCd: null
builderNo: null
isLoggedIn: boolean
role: string | null
}