Skip to content

Commit dfb2a4e

Browse files
committed
✨ [feat] : 권한별 접근 가능 페이지 설정
1 parent 7f61b6e commit dfb2a4e

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

src/components/top-bar/TopBar.vue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,29 @@ import { storeToRefs } from 'pinia'
5555
import { useMemberStore } from '@/stores/member'
5656
import NotificationModal from './NotificationModal.vue'
5757
import ProfileModal from './ProfileModal.vue'
58+
import { useRoute, useRouter } from 'vue-router'
59+
import { PERMITTED_URL } from '@/constants/common'
5860
5961
const memberStore = useMemberStore()
6062
const { info } = storeToRefs(memberStore)
6163
64+
const route = useRoute()
65+
const router = useRouter()
6266
onMounted(async () => {
6367
await memberStore.updateMemberInfoWithToken()
68+
69+
const originUrl = route.path.split('/')[1]
70+
if (info.value.memberRole === 'ROLE_USER') {
71+
if (!PERMITTED_URL.ROLE_USER.includes(originUrl)) router.push('/my-request')
72+
} else if (info.value.memberRole === 'ROLE_MANAGER') {
73+
if (!PERMITTED_URL.ROLE_MANAGER.includes(originUrl)) router.push('/my-task')
74+
} else if (info.value.memberRole === 'ROLE_ADMIN') {
75+
if (!PERMITTED_URL.ROLE_ADMIN.includes(originUrl)) router.push('/member-management')
76+
} else {
77+
if (!PERMITTED_URL.UNKNOWN.includes(originUrl)) {
78+
router.push('/login')
79+
}
80+
}
6481
})
6582
6683
const isSideOpen = ref(false)

src/constants/common.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,34 @@ export const COLOR_LIST = [
3737
{ borderColor: '#8B5CF6', fillColor: '#F5F3FF', colorEnum: 'PURPLE' },
3838
{ borderColor: '#A1A1AA', fillColor: '#F4F4F5', colorEnum: 'GREY' }
3939
]
40+
41+
export const PERMITTED_URL = {
42+
UNKNOWN: ['login', 'pw-change-email', 'pw-change'],
43+
ROLE_USER: ['my-request', 'task-request', 'edit-information', 'pw-check', 'pw-change'],
44+
ROLE_MANAGER: [
45+
'my-request',
46+
'task-request',
47+
'requested',
48+
'request-history',
49+
'my-task',
50+
'task-board',
51+
'team-board',
52+
'statistics',
53+
'task-detail',
54+
'edit-information',
55+
'pw-check',
56+
'pw-change'
57+
],
58+
ROLE_ADMIN: [
59+
'member-management',
60+
'edit-information',
61+
'task-management',
62+
'category-first',
63+
'category-second',
64+
'login-logs',
65+
'api-logs',
66+
'edit-information',
67+
'pw-check',
68+
'pw-change'
69+
]
70+
}

0 commit comments

Comments
 (0)