feat(frontend) : add portal pages, update auth middleware and DTOs for client portal

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 19:51:51 +01:00
parent 17c5160f2c
commit 0724d38a26
8 changed files with 347 additions and 29 deletions

View File

@@ -1,16 +1,26 @@
export default defineNuxtRouteMiddleware(async (to) => {
const auth = useAuthStore()
const isLogin = to.path === '/login'
const auth = useAuthStore()
const isLogin = to.path === '/login'
if (!auth.checked) {
await auth.ensureSession()
}
if (!auth.checked) {
await auth.ensureSession()
}
if (!isLogin && !auth.isAuthenticated) {
return navigateTo('/login')
}
if (!isLogin && !auth.isAuthenticated) {
return navigateTo('/login')
}
if (isLogin && auth.isAuthenticated) {
return navigateTo('/')
}
if (isLogin && auth.isAuthenticated) {
const isClient = auth.user?.roles?.includes('ROLE_CLIENT') ?? false
return navigateTo(isClient ? '/portal' : '/')
}
// ROLE_CLIENT: redirect to /portal, block internal pages
if (auth.isAuthenticated && auth.user?.roles?.includes('ROLE_CLIENT')) {
const isPortalRoute = to.path.startsWith('/portal')
const isLoginRoute = to.path === '/login'
if (!isPortalRoute && !isLoginRoute) {
return navigateTo('/portal')
}
}
})