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.

Blame · server/web/templates/admin_audit.html

Line attribution on main · 40 line(s)

43e681d8
Keenan Nemetz
4d ago
1 {{define "audit_body"}}
2 <h2 id="audit">Audit log</h2>
3 <p class="muted">
4 Every privileged action on this instance, newest first: account and key changes,
5 access rules, forced pushes and lock releases, admin commands, and browser writes.
6 This page only reads the log. The server appends to it, but anyone who can write
7 the data directory can edit it, so keep a copy off the host as well.
8 </p>
9
10 {{if .Audit.Err}}<div class="flash bad">The audit log could not be read: {{.Audit.Err}}</div>{{end}}
11
12 {{if .Audit.Entries}}
13 <div class="panel">
14 <table>
15 <thead><tr><th>When</th><th>Action</th><th>Actor</th><th>Subject</th><th>Detail</th></tr></thead>
16 <tbody>
17 {{range .Audit.Entries}}
18 <tr>
19 <td class="nowrap" title="{{.Time.UTC.Format "2006-01-02 15:04:05 UTC"}}">{{since .Time.Unix}}</td>
20 <td><code>{{.Action}}</code></td>
21 <td>{{template "userlink" (user .Actor)}}</td>
22 <td>{{.Subject}}</td>
23 <td class="muted audit-detail">{{.Detail}}</td>
24 </tr>
25 {{end}}
26 </tbody>
27 </table>
28 </div>
29 {{else if not .Audit.Err}}
c7b9094f
Keenan Nemetz
1d ago
30 <div class="empty-state"><p>{{if gt .Audit.Page 1}}No entries on this page.{{else}}No privileged actions have been recorded yet.{{end}}</p></div>
43e681d8
Keenan Nemetz
4d ago
31 {{end}}
32
33 {{if or .Audit.HasNewer .Audit.HasOlder}}
34 <nav class="pager" aria-label="Audit log pages">
35 {{if .Audit.HasNewer}}<a class="button secondary" href="{{.Audit.NewerURL}}">Newer</a>{{else}}<span></span>{{end}}
36 <span class="muted">Page {{.Audit.Page}}</span>
37 {{if .Audit.HasOlder}}<a class="button secondary" href="{{.Audit.OlderURL}}">Older</a>{{else}}<span></span>{{end}}
38 </nav>
39 {{end}}
40 {{end}}