• John Doe's avatar
    feat: add Backend Mode toggle to disable user self-service · 6826149a
    John Doe authored
    
    
    Add a system-wide "Backend Mode" that disables user self-registration
    and self-service while keeping admin panel and API gateway fully
    functional. When enabled, only admin can log in; all user-facing
    routes return 403.
    
    Backend:
    - New setting key `backend_mode_enabled` with atomic cached reads (60s TTL)
    - BackendModeUserGuard middleware blocks non-admin authenticated routes
    - BackendModeAuthGuard middleware blocks registration/password-reset auth routes
    - Login/Login2FA/RefreshToken handlers reject non-admin when enabled
    - TokenPairWithUser struct for role-aware token refresh
    - 20 unit tests (middleware + service layer)
    
    Frontend:
    - Router guards redirect unauthenticated users to /login
    - Admin toggle in Settings page
    - Login page hides register link and footer in backend mode
    - 9 unit tests for router guard logic
    - i18n support (en/zh)
    
    27 files changed, 833 insertions(+), 17 deletions(-)
    Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
    6826149a
settings.ts 13.4 KB