← Back to Core Domains

4.9 Impersonation Mode

Impersonation lets a tenant super user temporarily use another member’s effective identity for support and troubleshooting. It is tenant-local, visibly indicated, mutually exclusive, and audited.

Flow

MembersController::impersonate() verifies that the current member is a super user, rejects self-impersonation and nested sessions, loads the target from the active tenant, and calls ImpersonationService::start(). stopImpersonating() restores the original administrator and clears identity caches.

The session snapshot records both identities. While active, policy checks use the impersonated member’s permissions. The global layout displays the impersonation state and a way to stop it.

Audit trail

Tables that do not extend BaseTable need an explicit security review before they are used for impersonated writes.

Security rules

Verification

Cover super-user-only activation, self/nested rejection, effective policy changes, cache clearing, start/stop logs, write/delete logs, the persistent banner and keyboard-accessible stop control, logout/session expiry, and isolation between two tenant hosts.