mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-11-07 08:52:26 +00:00
Add admin compliance acknowledgement gate
This commit is contained in:
1 parent
c32e29bab0
commit
0acf00c4a1
29 files changed
+1173
-15
No files matched your search
@@ -7,6 +7,7 @@ import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router'
|
||||
import { useAuthStore } from '@/stores/auth'
|
||||
import { useAppStore } from '@/stores/app'
|
||||
import { useAdminSettingsStore } from '@/stores/adminSettings'
|
||||
import { useAdminComplianceStore } from '@/stores/adminCompliance'
|
||||
import { useNavigationLoadingState } from '@/composables/useNavigationLoading'
|
||||
import { useRoutePrefetch } from '@/composables/useRoutePrefetch'
|
||||
import { getSetupStatus } from '@/api/setup'
|
||||
@@ -45,7 +46,7 @@ const routes: RouteRecordRaw[] = [
|
||||
meta: {
|
||||
requiresAuth: false,
|
||||
title: 'Login',
|
||||
titleKey: 'common.login'
|
||||
titleKey: 'home.login'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -807,6 +808,20 @@ router.beforeEach(async (to, _from, next) => {
|
||||
return
|
||||
}
|
||||
|
||||
if (requiresAdmin && authStore.isAdmin) {
|
||||
const adminComplianceStore = useAdminComplianceStore()
|
||||
if (!adminComplianceStore.initialized) {
|
||||
try {
|
||||
await adminComplianceStore.fetchStatus()
|
||||
} catch (error) {
|
||||
const err = error as { status?: number; code?: string; metadata?: Record<string, string> }
|
||||
if (err.status === 423 && err.code === 'ADMIN_COMPLIANCE_ACK_REQUIRED') {
|
||||
adminComplianceStore.requireAcknowledgement(err.metadata)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check payment requirement (internal payment system only)
|
||||
if (to.meta.requiresPayment) {
|
||||
|
||||
Reference in new issue
Block a user