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/auth.html

Line attribution on main · 71 line(s)

f09ef39e
Keenan Nemetz
15d ago
1 {{define "login"}}
2 {{template "header" .}}
3 {{if not .Enabled}}
4 <div class="auth">
5 <div class="card">
ab326d3a
Keenan Nemetz
14d ago
6 <h1>Sign in</h1>
f09ef39e
Keenan Nemetz
15d ago
7 <p class="muted">{{.Reason}}</p>
8 </div>
9 </div>
10 {{else}}
11 <form class="auth" data-auth="login" data-next="{{.Next}}">
12 <div class="card form-card">
ab326d3a
Keenan Nemetz
14d ago
13 <h1>Sign in</h1>
f09ef39e
Keenan Nemetz
15d ago
14 <label>Account name
15 <input type="text" name="username" autocomplete="username webauthn" required autofocus>
16 </label>
ad79b7ab
Keenan Nemetz
2d ago
17 <p class="muted">Your browser can offer a saved passkey in this field; otherwise type your account name and continue.</p>
f09ef39e
Keenan Nemetz
15d ago
18 <p class="error" data-auth-error></p>
19 {{if .Registration}}
ed03b3d1
Keenan Nemetz
2h ago
20 <p class="muted">No account yet? <a href="/-/register">Create one</a>.</p>
f09ef39e
Keenan Nemetz
15d ago
21 {{else}}
ab326d3a
Keenan Nemetz
14d ago
22 <p class="muted">No account yet? Ask an instance admin for a one-time enrollment link.</p>
f09ef39e
Keenan Nemetz
15d ago
23 {{end}}
24 </div>
25 <div class="form-actions"><button type="submit">Use a passkey</button></div>
26 </form>
27 {{end}}
28 {{template "footer" .}}
29 {{end}}
30
31 {{define "register"}}
32 {{template "header" .}}
33 <form class="auth" data-auth="register">
34 <div class="card form-card">
35 <h1>Create an account</h1>
36 <p class="muted">Pick a name and register a passkey. You can add an SSH key after signing in.</p>
37 <label>Account name
38 <input type="text" name="username" pattern="[a-z0-9][a-z0-9_-]{1,31}" maxlength="32" autocomplete="username webauthn" required autofocus>
39 </label>
40 <p class="error" data-auth-error></p>
41 <p class="muted">Names are 2–32 characters: lowercase letters, digits, <code>-</code> and <code>_</code>.
42 The account name is permanent — it is the folder your branches live under and cannot be
62576fa8
Keenan Nemetz
14d ago
43 changed later.</p>
f09ef39e
Keenan Nemetz
15d ago
44 </div>
45 <div class="form-actions"><button type="submit">Create account and passkey</button></div>
46 </form>
47 {{template "footer" .}}
48 {{end}}
49
50 {{define "invite"}}
51 {{template "header" .}}
edf9db6e
Keenan Nemetz
12d ago
52 {{if .Enabled}}
53 <form class="auth" data-auth="invite">
f09ef39e
Keenan Nemetz
15d ago
54 <div class="card form-card">
edf9db6e
Keenan Nemetz
12d ago
55 <h1>Enrollment link</h1>
56 <p class="muted">Register this device as a passkey for the account this link belongs to.
57 The link works once. The account name appears once the passkey is created.</p>
f09ef39e
Keenan Nemetz
15d ago
58 <p class="error" data-auth-error></p>
59 </div>
60 <div class="form-actions"><button type="submit">Create a passkey</button></div>
61 </form>
62 {{else}}
63 <div class="auth">
64 <div class="card">
65 <h1>Enrollment link</h1>
edf9db6e
Keenan Nemetz
12d ago
66 <p class="muted">{{.Reason}}</p>
f09ef39e
Keenan Nemetz
15d ago
67 </div>
68 </div>
69 {{end}}
70 {{template "footer" .}}
71 {{end}}