Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Summarize accounts, activity, and configuration on the Admin overview

0db980ee6b820127a0310be661b5d2c98fcdde92 · Keenan Nemetz · 4d ago · parent 43e681d8

Summarize accounts, activity, and configuration on the Admin overview

The overview is the whole admin surface at a glance now, so it repeats the
head of the other tabs: active people, bots, instance admins, and retired
accounts from the roster; the newest audit records with their detail and a
link into the log; and the configuration warnings, including a browser that
cannot sign anyone in.

Refs #198 (01M6MK0NNZ2XR1D5TQKNWYT4HN).

server/web/templates/status.html +67

@@ -30,6 +30,73 @@
30 30
31 31 <p class="muted status-inventory">{{.Accounts}} account(s) · {{.Repos}} repository(s) · {{.Queued}} queued · {{.Running}} running · {{.Runners}} runner(s)</p>
32 32
33 <h2>Accounts</h2>
34 <div class="status-grid">
35 <div class="card">
36 <span class="muted">Active people</span>
37 <strong>{{.AccountSummary.People}}</strong>
38 <span class="status-note">can sign in or push</span>
39 </div>
40 <div class="card">
41 <span class="muted">Bots</span>
42 <strong>{{.AccountSummary.Bots}}</strong>
43 <span class="status-note">automation identities</span>
44 </div>
45 <div class="card">
46 <span class="muted">Instance admins</span>
47 <strong>{{.AccountSummary.Admins}}</strong>
48 <span class="status-note">can act everywhere</span>
49 </div>
50 <div class="card">
51 <span class="muted">Retired</span>
52 <strong>{{.AccountSummary.Retired}}</strong>
53 <span class="status-note">names kept, access removed</span>
54 </div>
55 </div>
56 <p class="muted"><a href="/admin?tab=accounts">Manage accounts</a></p>
57
58 <h2>Recent admin activity</h2>
59 {{if .RecentAudit.Err}}<div class="flash bad">The audit log could not be read: {{.RecentAudit.Err}}</div>{{end}}
60 {{if .RecentAudit.Entries}}
61 <div class="panel">
62 <table>
63 <thead><tr><th>When</th><th>Action</th><th>Actor</th><th>Subject</th><th>Detail</th></tr></thead>
64 <tbody>
65 {{range .RecentAudit.Entries}}
66 <tr>
67 <td class="nowrap" title="{{.Time.UTC.Format "2006-01-02 15:04:05 UTC"}}">{{since .Time.Unix}}</td>
68 <td><code>{{.Action}}</code></td>
69 <td>{{template "userlink" (user .Actor)}}</td>
70 <td>{{.Subject}}</td>
71 <td class="muted audit-detail">{{.Detail}}</td>
72 </tr>
73 {{end}}
74 </tbody>
75 </table>
76 </div>
77 <p class="muted"><a href="/admin?tab=audit">Read the full audit log</a></p>
78 {{else if not .RecentAudit.Err}}
79 <p class="muted">No privileged actions have been recorded yet.</p>
80 {{end}}
81
82 {{if .ConfigWarnings}}
83 <h2>Configuration attention</h2>
84 <div class="panel">
85 <table>
86 <thead><tr><th>Setting</th><th>Why it matters</th></tr></thead>
87 <tbody>
88 {{range .ConfigWarnings}}
89 <tr>
90 <td><code>{{.Key}}</code> <span class="muted">= {{.Value}}</span></td>
91 <td class="muted">{{if .Note}}{{.Note}}{{else}}review this setting{{end}}</td>
92 </tr>
93 {{end}}
94 </tbody>
95 </table>
96 </div>
97 <p class="muted"><a href="/admin?tab=configuration">See every effective setting</a></p>
98 {{end}}
99
33 100 <h2>Page views</h2>
34 101 {{if .Views.Disabled}}
35 102 <p class="muted">Page-view tracking is not wired on this instance.</p>