lilith-platform.live/codebase/@features/vip/frontend-client/src
Natalie 236f0638d0 feat(vip/admin): SSO-gated /admin view with fan impersonation
Replicates quinn.www's AdminDevView pattern for the VIP app:
- VipAdminView at /admin lists VIP clients and offers Open as for each fan with
  a live token. Reaching /admin means an authenticated session (the nginx edge
  gates it to SSO, wired next).
- Open as calls the admin impersonate endpoint, then seeds the same session
  storage a real login would (vip_auth_ok + content key) plus an impersonation
  marker, and navigates to the fan's portal — which then skips the password
  screen (appState goes straight to unlocked).
- VipPortalPage shows a persistent ImpersonationBanner with a one-tap Exit that
  clears the session and returns to the roster.

contentKey from the endpoint is base64url, matching the verify contract, so the
fan's encrypted content decrypts under impersonation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 02:41:06 -04:00
..
components feat(vip/admin): SSO-gated /admin view with fan impersonation 2026-06-25 02:41:06 -04:00
hooks
icons
pages feat(vip/admin): SSO-gated /admin view with fan impersonation 2026-06-25 02:41:06 -04:00
api.ts feat(vip/admin): SSO-gated /admin view with fan impersonation 2026-06-25 02:41:06 -04:00
App.tsx feat(vip/admin): SSO-gated /admin view with fan impersonation 2026-06-25 02:41:06 -04:00
disguises.ts
formatters.ts
main.tsx
push.ts
tokens.ts feat(vip/admin): SSO-gated /admin view with fan impersonation 2026-06-25 02:41:06 -04:00
vite-env.d.ts