diff options
| author | Lena <lena@omega> | 2026-08-01 00:00:00 +0000 |
|---|---|---|
| committer | Lena <lena@omega> | 2026-08-01 00:00:00 +0000 |
| commit | bb6bc2387d58c737dbf92e73f8544bf39319dbd8 (patch) | |
| tree | 6d5eaf5dac213074cd832da50f64260fce728fed /templates/set-password.html | |
| download | git-forge-bb6bc2387d58c737dbf92e73f8544bf39319dbd8.tar.gz | |
A small self-hosted git forge: HTTP push and pull, cgit browsing,
local and OIDC accounts, TOTP, scoped push tokens, per-repo
permissions, issues, a wiki, and outbound mail.
It does not reimplement git. git-http-backend and cgit run as CGI
behind its own listener, which authorises every request before
exec'ing either. One binary, one data directory, one listener: no
database, no JavaScript, and state is JSON in a git repo with a
working tree.
Diffstat (limited to 'templates/set-password.html')
| -rw-r--r-- | templates/set-password.html | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/templates/set-password.html b/templates/set-password.html new file mode 100644 index 0000000..6a38413 --- /dev/null +++ b/templates/set-password.html @@ -0,0 +1,20 @@ +{{define "title"}}Set a password - {{.Site}}{{end}} +{{define "main"}} +<h2>Set a password for {{.Data.Name}}</h2> +<p>This link works once, and setting the password is what spends it.</p> +<form method="post" action="/set-password"> +<input type="hidden" name="csrf" value="{{.CSRF}}"> +<input type="hidden" name="name" value="{{.Data.Name}}"> +<input type="hidden" name="expires" value="{{.Data.Expires}}"> +<input type="hidden" name="t" value="{{.Data.Token}}"> +<p> +<label for="new">Password</label> +<input id="new" name="new" type="password" autocomplete="new-password" required> +</p> +<p> +<label for="again">Password again</label> +<input id="again" name="again" type="password" autocomplete="new-password" required> +</p> +<p><button type="submit">Set the password</button></p> +</form> +{{end}} |