{{/* The first tab of the people page: the tree, and everyone in it. */}} {{define "people_body"}} {{if .Error}}
{{.Error}}
{{end}} {{if .Message}}{{.Message}}
{{end}} {{if .Pending}}| Name | Signed up | Approve, and put them in | ||
|---|---|---|---|---|
| {{.Email}} | {{.Name}} | {{ago .CreatedAt}} |
A person is in a project, a project in a team, a team in an organization{{if .HasQuotas}}, and limits can be set on any of them{{end}}. Choose a name — or a person in the list below — to see its limits, capacity and use beside the tree; open a project for 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}}| Member | State | Last sign-in |
|---|
No members of its own. Members of its team or organization can use it too.
{{end}} {{template "add-member" (dict "Kind" "project" "ID" $p.ID "D" $ "Open" $p.ID)}} {{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 | Member of | Last sign-in | Add to |
|---|
Someone who is a member of nothing uses the gateway on their own: personal keys and the chat page, within their personal limits.
{{else}}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.
Nobody is a member of {{.Name}} itself; a member here could use every project in it.
{{end}} {{template "add-member" (dict "Kind" .Kind "ID" .ID "D" $d "Open" "")}}