Fix view switching of restricted app.

This commit is contained in:
2025-12-04 07:46:36 +00:00
parent 29df169a67
commit 3d5b0aa4bf
+6 -6
View File
@@ -29,8 +29,8 @@
<button v-if="canAuthenticate" class="btn-primary" :disabled="loading" @click="authenticateUser">
{{ loading ? (mode === 'reauth' ? 'Verifying' : 'Signing in') : (mode === 'reauth' ? 'Verify' : 'Login') }}
</button>
<button v-if="isAuthenticated && mode !== 'reauth' && mode !== 'forbidden'" class="btn-danger" :disabled="loading" @click="logoutUser">Logout</button>
<button v-if="isAuthenticated && mode !== 'reauth' && mode !== 'forbidden'" class="btn-primary" :disabled="loading" @click="openProfile">Profile</button>
<button v-if="isAuthenticated && mode !== 'reauth'" class="btn-danger" :disabled="loading" @click="logoutUser">Logout</button>
<button v-if="isAuthenticated && mode !== 'reauth'" class="btn-primary" :disabled="loading" @click="openProfile">Profile</button>
</slot>
</div>
</div>
@@ -70,8 +70,8 @@ const canAuthenticate = computed(() => {
if (initializing.value) return false
// In reauth mode, allow authentication even if already authenticated
if (props.mode === 'reauth') return true
// In forbidden mode or forbidden view, don't allow authentication
if (props.mode === 'forbidden' || currentView.value === 'forbidden') return false
// In forbidden view (authenticated but lacking permissions), don't allow authentication
if (currentView.value === 'forbidden') return false
// In login view or initial state, allow authentication
return true
})
@@ -80,7 +80,7 @@ const headingTitle = computed(() => {
if (props.mode === 'reauth') {
return `🔐 Additional Authentication`
}
if (props.mode === 'forbidden' || currentView.value === 'forbidden') return '🚫 Forbidden'
if (currentView.value === 'forbidden') return '🚫 Forbidden'
return `🔐 ${settings.value?.rp_name || location.origin}`
})
@@ -88,7 +88,7 @@ const headerMessage = computed(() => {
if (props.mode === 'reauth') {
return 'Please verify your identity to continue with this action.'
}
if (props.mode === 'forbidden' || currentView.value === 'forbidden') {
if (currentView.value === 'forbidden') {
return 'You lack the required permissions.'
}
return 'Please sign in with your passkey.'