feat: implement user role management in session and update Header component to display user ID
This commit is contained in:
parent
e5affe0df5
commit
f33786a8eb
17
README.md
17
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'
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -41,6 +41,7 @@ const initialState: InitialState = {
|
||||
custCd: null,
|
||||
builderNo: null,
|
||||
isLoggedIn: false,
|
||||
role: null,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -27,4 +27,5 @@ export interface SessionData {
|
||||
custCd: null
|
||||
builderNo: null
|
||||
isLoggedIn: boolean
|
||||
role: string | null
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user