Summary
Internal admin panel for managing users, teams, roles, permissions, and impersonation. Gated through the RBAC system.
Scope
- Admin layout + dashboard — admin-specific layout. Dashboard with key metrics: users, teams, MRR, signups over time.
- User management — list, search, and filter users. View and edit user detail. Assign/remove roles and direct permissions. Ban (assign Banned role) with reason. Soft-delete and restore.
- Team management — list, search, and filter teams. View team detail with members and their team roles. Edit team settings. Deactivate team.
- Role + permission management — create, edit, and delete custom roles. Manage role-permission assignments (grants and negations). Manage user-role and user-permission assignments. System roles (Administrator, Staff, Member, Banned, Owner) are visible but locked from edits below their tier.
- User impersonation — impersonate any user from admin. Visible "impersonating" banner. Exit button. Audit log entries on enter/exit. Cannot impersonate users with equal or higher tier (e.g., Staff cannot impersonate an Administrator).
Acceptance criteria
- Access to admin routes is gated by the
admin.view permission resolved through the RBAC system
- Users with appropriate permissions can search, view, edit, ban, and restore users
- Admins can manage roles, role-permission assignments, and user-level role/permission assignments
- System roles cannot be edited from the UI by users below the required tier
- Admins can search, view, and manage teams (including viewing team-scoped roles)
- Impersonation works end-to-end with a clear banner and exit path; tier rules enforced
- All impersonation events are recorded in the audit log
- Dashboard surfaces accurate user, team, and MRR metrics
Summary
Internal admin panel for managing users, teams, roles, permissions, and impersonation. Gated through the RBAC system.
Scope
Acceptance criteria
admin.viewpermission resolved through the RBAC system