← Admin Panel

Users

admin panel · wireframes · management

User management: list, invitations, and linking to source accounts across three tabs.

“list” tab
achilles.local/admin/users /admin/users · Owner / Admin
Users
Import 2
List Invitations Account linking
Search by name or email
Role Status Last sign-in 4
NameEmailRoleStatusLast sign-in
1–50 of 128
1 2 3
  1. 1 “Export” downloads the current list (respecting search and filters) as CSV or JSON; secrets are excluded from the export.
  2. 2 “Import” — bulk onboarding: upload a batch of emails behind the same SMTP gate as “Invite”. The wizard lives in Auth & Security.
  3. 3 “Invite” opens a modal (email + role). Until SMTP is configured the button is disabled — the reason shows in the hover tooltip (smtp not configured).
  4. 4 Filters — facets Role · Status · Last sign-in. Search and filter behavior is shared across all lists.
  5. 5 Clicking a row opens the user card.
  6. 6 Roles: Owner manages everyone, Admin manages Members only. The sole Owner cannot be demoted or deactivated (guard). Rules in Auth & Security.
  7. 7 ⋯ opens the row menu: change role · deactivate / reactivate · reset password · delete. The set depends on permissions: only the Owner sees “Delete” (with confirmation); self-deactivation is disallowed.
  8. 8 Deactivated: sign-in is blocked; sessions and API keys are not restored on reactivation — Auth & Security.
  9. “Last sign-in” — schema in the data model.
Invitations → Auth & Security
“invitations” tab
List Invitations Account linking
Search by email
Status Role 1
EmailRoleStatus
colleague@company.com Member pending Resend · Revoke 2
igor@company.com Member accepted
old@company.com Admin expired Resend
  1. 1 Search by email and filters (Status · Role), statuses pending · accepted · expired. Behavior is shared across all lists.
  2. 2 “Resend” issues a new link, “Revoke” invalidates the current one. On an expired link the invitee sees the status screen.
  3. 3 The invitation is sent by email; on the receiving end is the Invite Accept screen. Token mechanics — invite flow.
  4. 4 Email is the only invitation channel: until SMTP is configured, “Invite” and “Resend” are disabled, with the reason in the hover tooltip. The link leads to settings.
“identity mapping” tab
List Invitations Account linking
Search by user
Source Link status 1
UserJiraSlackConfluence
Anna Orlova anna@… @anna anna@…
Dmitry Sokolov dmitry@… 2 @dmitri unmatched Link 3
link popover · slack
@dmitri
Slack account
@dmitri current · manual @dmitry.s likely @d.sokolov
Unlink
  1. 1 Search by user and filters (Source · Link status: matched · unmatched · manual). Behavior is shared across all lists.
  2. 2 Every cell is clickable (pencil on hover) — a click opens the link popover, so the admin can override even a confident auto-match. A manually chosen link is no longer overwritten by auto-matching (pin marker); “Unlink” returns the cell to unmatched.
  3. 3 Auto-matching is conservative: whatever fails to match on exact email stays unmatched. “Link” opens a search over the source's accounts for manual linking; fuzzy resolution is v2. The algorithm lives in Auth & Security.