diff --git a/composables/useAuth.ts b/composables/useAuth.ts index 551e883..5b7bef2 100644 --- a/composables/useAuth.ts +++ b/composables/useAuth.ts @@ -41,6 +41,9 @@ export const useAuth = () => { // Fallback to legacy tier system return user.value?.tier === 'user'; }); + + // Alias for consistency with new naming convention + const isMember = isUser; const isBoard = computed(() => { // Check new realm roles first @@ -300,6 +303,7 @@ export const useAuth = () => { // Tier-based properties userTier, isUser, + isMember, // Alias for isUser, better naming convention isBoard, isAdmin, firstName, diff --git a/pages/admin/events/index.vue b/pages/admin/events/index.vue new file mode 100644 index 0000000..35dc980 --- /dev/null +++ b/pages/admin/events/index.vue @@ -0,0 +1,552 @@ + + + \ No newline at end of file diff --git a/pages/admin/members/index.vue b/pages/admin/members/index.vue new file mode 100644 index 0000000..731443e --- /dev/null +++ b/pages/admin/members/index.vue @@ -0,0 +1,507 @@ + + + \ No newline at end of file diff --git a/pages/admin/payments/index.vue b/pages/admin/payments/index.vue new file mode 100644 index 0000000..695495e --- /dev/null +++ b/pages/admin/payments/index.vue @@ -0,0 +1,524 @@ + + + \ No newline at end of file diff --git a/pages/admin/settings/index.vue b/pages/admin/settings/index.vue new file mode 100644 index 0000000..b27a748 --- /dev/null +++ b/pages/admin/settings/index.vue @@ -0,0 +1,513 @@ + + + \ No newline at end of file diff --git a/pages/admin/users/index.vue b/pages/admin/users/index.vue new file mode 100644 index 0000000..5c496d0 --- /dev/null +++ b/pages/admin/users/index.vue @@ -0,0 +1,424 @@ + + + \ No newline at end of file diff --git a/pages/board/governance/index.vue b/pages/board/governance/index.vue new file mode 100644 index 0000000..783c1c6 --- /dev/null +++ b/pages/board/governance/index.vue @@ -0,0 +1,350 @@ + + + \ No newline at end of file diff --git a/pages/board/meetings/index.vue b/pages/board/meetings/index.vue new file mode 100644 index 0000000..45ee65b --- /dev/null +++ b/pages/board/meetings/index.vue @@ -0,0 +1,293 @@ + + + \ No newline at end of file diff --git a/pages/dashboard/index.vue b/pages/dashboard/index.vue index fa10142..f6de505 100644 --- a/pages/dashboard/index.vue +++ b/pages/dashboard/index.vue @@ -22,7 +22,7 @@ definePageMeta({ layout: 'dashboard' }); -const { user, userTier } = useAuth(); +const { user, userTier, isAdmin, isBoard } = useAuth(); const loading = ref(true); // Route to tier-specific dashboard - auth middleware ensures user is authenticated @@ -31,8 +31,15 @@ onMounted(() => { // Auth middleware has already verified authentication - route based on highest privilege if (user.value && userTier.value) { - // Use old structure for now until new pages are fully deployed - let targetRoute = `/dashboard/${userTier.value}`; + // Use new role-based structure + let targetRoute = ''; + if (isAdmin.value) { + targetRoute = '/admin/dashboard'; + } else if (isBoard.value) { + targetRoute = '/board/dashboard'; + } else { + targetRoute = '/member/dashboard'; + } console.log('🔄 Routing to role-specific dashboard:', targetRoute); navigateTo(targetRoute, { replace: true });