{{define "admin_users"}} Accounts · llmgw

Accounts

{{len .Pending}} waiting for approval · {{len .Active}} active

{{if .Error}}

{{.Error}}

{{end}} {{if .Message}}

{{.Message}}

{{end}}

Waiting for approval

{{if .Pending}} {{range .Pending}}{{end}}
EmailNameSigned upProject
{{.Email}}{{.Name}}{{ago .CreatedAt}}
{{else}}

Nobody is waiting.

{{end}}

Accounts

{{if .Active}} {{range .Active}}{{end}}
EmailStateAdminProjectLast login
{{.Email}} {{.State}} {{if .IsAdmin}}yes{{else}}—{{end}} {{or .ProjectID "—"}} {{ago .LastLoginAt}} {{if eq (printf "%s" .State) "active"}}
{{else}}
{{end}}
{{else}}

No accounts yet.

{{end}}

Three things are deliberately not here. Making someone an admin, resetting a password and issuing keys on another person's behalf all need a shell on the control plane — llmgw users promote, reset-password, llmgw keys. A stolen admin session can approve and suspend; it cannot hand itself more access or take over an account.

{{end}}