feat(02-06): auth layout switching + admin role guard (GAPs 2, 3, 4)
- App.vue: conditionally renders AuthLayout for auth routes, app shell otherwise - router/index.js: meta.layout='auth' on all four auth routes - router/index.js: meta.requiresAdmin=true on /admin route - router/index.js: beforeEach role check redirects non-admin to / - router/index.js: /account redirects to /settings
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="flex h-screen overflow-hidden">
|
||||
<AuthLayout v-if="route.meta.layout === 'auth'" />
|
||||
<div v-else class="flex h-screen overflow-hidden">
|
||||
<AppSidebar />
|
||||
<main class="flex-1 overflow-y-auto">
|
||||
<router-view />
|
||||
@@ -8,10 +9,13 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import AppSidebar from './components/layout/AppSidebar.vue'
|
||||
import { useTopicsStore } from './stores/topics.js'
|
||||
import { onMounted } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import AppSidebar from './components/layout/AppSidebar.vue'
|
||||
import AuthLayout from './layouts/AuthLayout.vue'
|
||||
import { useTopicsStore } from './stores/topics.js'
|
||||
|
||||
const route = useRoute()
|
||||
const topicsStore = useTopicsStore()
|
||||
onMounted(() => topicsStore.fetchTopics())
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user