Admin Profile
The Profile page is a read-only summary of who you are inside the admin panel. It surfaces your name, email, role, and the school context you're attached to. There is currently no in-page editor — name/email changes go through the super admin who manages your account, and password changes go through either the set-password flow (first login) or the super-admin reset (later).
At a glance
| Who can do this | Any logged-in admin (super admin or admin). Each user only sees their own profile. |
| Where it lives | Admin panel → /dashboard/profile (user icon in sidebar) |
| Editable on this page? | No. Profile fields are display-only today. |
| Related features | Sub-Admin & Access Control · Admin Panel Overview |
What's on the page
A single page split into three blocks (top to bottom):
- Hero card — large avatar, full name (or "Administrator" if first/last name aren't set), role tag (e.g.
SUPER ADMIN,ADMIN), and email line. - Administrative Credentials card (left column on desktop) — three rows in a Descriptions list:
- Identity — full name
- Registry Email — email address
- Privilege Role — role rendered in uppercase (
super_admindisplays asSUPER ADMIN)
- Contextual Affiliation card (right column on desktop, dark slate background) — shows either:
- Institutional Node with the school registry reference (
#<schoolId>) if the user has aschoolId, OR - Global Governance / "Platform-wide administrator instance" for super admins and admins not pinned to a single school via
schoolId
- Institutional Node with the school registry reference (
If useUserStore has no user (e.g. session expired before navigation), the page renders an empty state: "Profile Not Loaded — Please ensure you are logged in to view your administrative profile details."
What this page does NOT do
- No name/email editor. To change name or email, a super admin must open
/dashboard/admins, find the row, and use Edit Profile. - No password change form. Password is set once via
/setup-password?token=...(from the invite email). To change it later, the user asks a super admin to reset it via the Reset Password modal on the Admins page. - No avatar upload. The avatar is the default user icon — there is no image picker.
- No 2FA / MFA controls. Two-factor auth is not implemented in the admin panel today.
- No session / device list. No way to view or revoke other active sessions from this page.
Step-by-step
1. Open Profile
- Click the Profile entry in the sidebar (user icon).
- Route:
/dashboard/profile.
2. Confirm your identity
- Verify the name, email, and role tag in the hero card match expectations.
- If your name shows as "Administrator", your
firstName/lastNameweren't set when your admin user was created — ask the super admin to fill them in via Edit Profile on/dashboard/admins.
3. Check school affiliation
- Right-hand card tells you whether you're scoped to a specific school (Institutional Node + school ID) or platform-wide (Global Governance).
- Note: this card reads
user.schoolId, which is a single-school pin. The richer "assigned schools" multi-select used for sub-admin scoping is not displayed on this page — see Sub-Admin & Access Control for the full assignment view.
Edge cases & things to test
- Missing name: log in as an admin whose
firstName/lastNameare empty — confirm the hero shows "Administrator" and the Identity row gracefully falls back, noundefinedartifacts. - Long email: test a 60-character email — confirm the hero line and Registry Email row don't overflow on mobile.
- Role label: log in as
super_admin— confirm tag readsSUPER ADMIN(underscore stripped). Same foradmin. - No school context: a super admin with no
schoolId— confirm the right card shows "Global Governance / Platform-wide administrator instance" and not a broken#nullID. - Pinned school context: an admin with
schoolIdset — confirm the right card showsRegistry Reference: #<id>. Verify the displayed ID matches the school they actually have access to. - Stale session: clear the user from the store mid-session, then navigate to
/dashboard/profile— confirm the empty-state ("Profile Not Loaded") renders cleanly and offers a path back to login. - Mobile layout: at
<768px, confirm both cards stack vertically and the avatar/role tag wrap correctly. - Page after password reset: super admin resets your password, then you log back in — confirm Profile reflects everything correctly (no leftover stale data from the previous session).
- Future-proof: as soon as edit-self or change-password is added, this page's edge-case list will need to grow.
Related
- Sub-Admin & Access Control — where name/email/password changes actually happen
- Admin Panel Overview — what each role can do across the panel