Route audit admins into admin console

This commit is contained in:
RWDai
2026-05-13 18:12:46 +08:00
parent e818443841
commit a4e040a7d7
4 changed files with 4 additions and 6 deletions

View File

@@ -117,7 +117,7 @@ async function syncExternalAuthState(nextToken: string | null): Promise<void> {
return
}
if (router.currentRoute.value.path.startsWith('/admin') && user.role !== 'admin') {
if (router.currentRoute.value.path.startsWith('/admin') && !authStore.canAccessAdmin) {
await router.replace('/dashboard')
}
}

View File

@@ -340,7 +340,7 @@ async function handleLogin() {
// 延迟一下让用户看到成功消息
setTimeout(() => {
// 根据用户角色跳转到不同的仪表盘
const targetPath = authStore.user?.role === 'admin' ? '/admin/dashboard' : '/dashboard'
const targetPath = authStore.canAccessAdmin ? '/admin/dashboard' : '/dashboard'
router.push(targetPath)
}, 1000)
} else {

View File

@@ -12,8 +12,7 @@ export async function checkAdminAccess(
authStore: ReturnType<typeof useAuthStore>,
moduleStore: ReturnType<typeof useModuleStore>
): Promise<string | null> {
const isAdmin = authStore.user?.role === 'admin'
if (!isAdmin) {
if (!authStore.canAccessAdmin) {
log.warn('Non-admin user attempted to access admin page, redirecting to user dashboard')
return '/dashboard'
}

View File

@@ -26,12 +26,11 @@ export function resolveHomeRedirect(
}
// 已登录用户首次访问首页(非返回/刷新场景),根据角色跳转到对应仪表盘
const isAdmin = authStore.user?.role === 'admin'
const redirectPath = sessionStorage.getItem('redirectPath')
if (redirectPath && redirectPath !== '/') {
sessionStorage.removeItem('redirectPath')
return redirectPath
}
return isAdmin ? '/admin/dashboard' : '/dashboard'
return authStore.canAccessAdmin ? '/admin/dashboard' : '/dashboard'
}