A split button in the account list: clicking the label opens the account neutrally, clicking the chevron reveals a picker of the account's users. Choosing one opens the account with view-as parameters that the permission layer reads on landing and applies as an impersonation, then strips from the address bar.
Also called: see what this user sees · open as member · reproduce a user's problem
- 1Members are fetched lazily on first chevron click, so the picker costs no traffic unless used.
- 2The chosen person's role and crew ride in the URL because session storage is host-scoped and can't be written into the tenant from the console.
- 3The permission layer reads the parameters on landing, sets the view-as state, and removes them from the URL so a refresh or shared link doesn't carry it forward.
- 4The picker is rendered into the page body with fixed positioning so a table's overflow or the viewport edge can't clip it, and it flips above when there isn't room below.
The component documents the bridge and why it is needed: this 'bridges across hosts (apex /platform → tenant subdomain) because sessionStorage is host-scoped — couldn't write impersonation state into the tenant from the admin page directly.' The positioning is a fix, not a flourish: the popover is portalled 'so the table's overflow / the viewport edge can never clip it (it sits on a bottom row otherwise).' Stripping the parameters after landing is what stops an impersonation link being forwarded or bookmarked by accident.
- A permission-specific bug is invisible from an admin's view.
- Impersonation state couldn't cross from the console host to the tenant host.
- The member picker was being clipped by the table it sat in.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →