Protect a page with zero custom middleware and layer permissions on top.
<script setup lang="ts">
definePageMeta({
convexAuth: true,
})
const { user } = useConvexAuth()
</script>
<template>
<div>
<h1>Admin Dashboard</h1>
<p>Signed in as {{ user?.email || user?.name }}</p>
</div>
</template>
<script setup lang="ts">
definePageMeta({ convexAuth: true })
const { can, pending } = usePermissions()
const canViewAdmin = can('admin.view')
</script>
<template>
<div v-if="pending">Loading permissions...</div>
<div v-else-if="canViewAdmin">
<h1>Admin Dashboard</h1>
</div>
<div v-else>
<p>You do not have access.</p>
</div>
</template>
definePageMeta({
convexAuth: { redirectTo: '/login' },
})