[object Object]

← back to Norma

tasks: mark #52 (admin impersonation UI) DONE

adb6d64334ebc6b4da82e7c032f3ad057500731e · 2026-05-20 14:31:15 -0700 · Steve Abrams

Files touched

Diff

commit adb6d64334ebc6b4da82e7c032f3ad057500731e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed May 20 14:31:15 2026 -0700

    tasks: mark #52 (admin impersonation UI) DONE
---
 docs/sessions/tasks-requested.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/sessions/tasks-requested.md b/docs/sessions/tasks-requested.md
index 1eea8bb..e2b4c51 100644
--- a/docs/sessions/tasks-requested.md
+++ b/docs/sessions/tasks-requested.md
@@ -89,7 +89,7 @@ Track every task the user has requested, regardless of completion status.
 | 49 | Stop the Gmail CRM header from saying natalia@ when logged in as info@ — bind to the logged-in user | DONE — `/api/auth/session` returns email + fullName; `GmailCRMTab` binds to `sessionEmail` (commit 8f71b14). |
 | 50 | Add `info@studentdebtcrisis.org` as the main SDCC admin that can see everyone else's accounts | DONE — admin tier, full visibility; `/api/gmail/messages` now defaults admins to the UNION of every connected mailbox so info@ sees 1,915 SDCC msgs immediately. |
 | 51 | Add info@studentdebtcrisis.org to the weekly intelligence digest recipients | DONE — `nonprofit_accounts.api_connections.intelligence.digest_email` = `info@, natalia@, SabrinaAshley@`; `digest_enabled=TRUE`, day=Monday. |
-| 52 | Admin impersonation — toggle through each user and act as their account | PARTIAL — backend shipped at `/api/admin/impersonate` (GET/POST/DELETE with `norma-imp-by` cookie preservation). UI dropdown + banner not yet wired. |
+| 52 | Admin impersonation — toggle through each user and act as their account | DONE — backend at `/api/admin/impersonate` + `ImpersonateMenu` mounted in AppShell (variant=banner sticky-top, variant=dropdown in header). Smoke-verified end-to-end (commit 1c1e1df). |
 | 53 | "Connect Gmail" UX so info@ can OAuth their own Google account | DONE — green pill in header + big CTA in empty inbox state, links to `/api/gmail/oauth?action=connect&mailbox=<email>`. lib/gmail.ts + /api/gmail/oauth refactored to per-mailbox. |
 | 54 | Doc for the SDCC team member with info@'s Google password | DONE — `docs/CONNECT-GMAIL-INFO-SDCC.txt` (9 steps + 2 likely Google-side blockers + troubleshooting). |
 | 55 | Grow Kamatera disk + claim the new space | DONE — Kamatera resized 400→700 GB; `growpart /dev/sda 2 && resize2fs /dev/sda2`; filesystem now 689 GB usable, 299 GB free (was 5.7 GB free). |

← 1c1e1df feat(impersonate): wire the View-as dropdown + Acting-as ban  ·  back to Norma  ·  feat(auth): brute-force-resistant login rate-limit (10 fails 2c9def0 →