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.

Manage accounts from the users directory, not the Admin tab

ea21f923d1fabe3a633e3dc4713ca18d211dbfcb · Keenan Nemetz · 4d ago · parent f11854fe

Manage accounts from the users directory, not the Admin tab

The Accounts tab rendered every account in the roster, which costs more as
an instance grows and duplicates a directory that is already paginated,
searchable, filterable, and sortable. The tab now keeps the invite and bot
forms and points at /u, and an instance admin gets a Manage action on each
directory row that opens the account page.

The Manage column is presentation only: the account page still checks the
instance-admin role, so a non-admin who types its URL gets the usual 404.

Refs #198 (01M6MK0NNZ2XR1D5TQKNWYT4HN).

server/web/templates/admin_users.html +1−19

@@ -1,25 +1,7 @@
1 1 {{define "accounts_body"}}
2 2 {{if .Error}}<div class="flash bad">{{.Error}}</div>{{end}}
3 3
4 <div class="panel">
5 <table>
6 <thead><tr><th>Account</th><th>Status</th><th>Role</th><th>Keys</th><th>Sessions</th><th></th></tr></thead>
7 <tbody>
8 {{range .Users}}
9 <tr>
10 <td>
11 <a href="/users/{{.Account.Name}}">{{.Account.Name}}</a>{{if .Account.Bot}} <span class="state">bot</span>{{end}}
12 </td>
13 <td><span class="state {{.Account.Status}}">{{.Account.Status}}</span></td>
14 <td>{{if .Account.Admin}}<span class="label">instance admin</span>{{else}}<span class="muted">{{.Account.Role}}</span>{{end}}</td>
15 <td>{{len .Account.Keys}}</td>
16 <td>{{.Sessions}}</td>
17 <td><a href="/users/{{.Account.Name}}">Manage</a></td>
18 </tr>
19 {{end}}
20 </tbody>
21 </table>
22 </div>
4 <p class="muted">To change a role, inspect keys or sessions, or retire an account, open it from the <a href="/u">users directory</a>.</p>
23 5
24 6 <h2>Invite a person</h2>
25 7 <p class="muted">Send them a one-time link: they choose a passkey, then can add an SSH key.</p>