{{define "admin_users"}}
{{len .Pending}} waiting for approval · {{len .Accounts}} accounts · {{len .Projects}} projects
{{template "nav" .Nav}}{{.Error}}
{{end}} {{if .Message}}{{.Message}}
{{end}} {{if .Pending}}| Name | Signed up | Put them in | ||
|---|---|---|---|---|
| {{.Email}} | {{.Name}} | {{ago .CreatedAt}} | {{if $.Projects}} {{else}}Create a project first, below.{{end}} |
A person is in a project, a project in a team, a team in an organization{{if .HasQuotas}}, and quotas can be set on any of them{{end}}. Open a project to see its people and keys.
{{if not .Tree}}No organizations yet. Create one, then a team in it, then a project in the team — an account can only be approved into a project.
{{end}} {{range $org := .Tree}}| Person | State | Last sign-in | Move to |
|---|
Nobody is in this project.
{{end}} {{with index $.Keys $p.ID}}| Key | Owner | State | Last used | |
|---|---|---|---|---|
{{.Name}} {{.Prefix}} |
{{or .OwnerEmail "issued by an operator"}} | {{.State}} | {{ago .LastUsedAt}} | {{if eq .State "active"}} {{end}} |
| Person | State | Project | Last sign-in | Move to |
|---|
No accounts yet.
{{end}}Not here on purpose: making someone an admin, resetting a password
and issuing a key for someone else. Each turns a stolen admin session into more
access than it had, so they need a shell on the control plane —
llmgw users promote, llmgw users reset-password,
llmgw keys create.