test / test (push) Canceled after 0s
The pages of the mockups accepted in 87fa0a4, built from the kit's partials
(written by a Sonnet agent into the working tree, reviewed here):
- Account: "Send me notifications" in the Profile form, saved with the
profile; an unticked box is off.
- Server > Settings: the instance switch (box 03), and box 04 Notification
mail with the DKIM and SPF records of the server's own name, drawn with the
record partial of a domain's DNS page and checked in DNS. Sending rate
limits are box 02 in the left column. A record that is not in place is
tagged as a warning, not a failure: notifications are sent without it.
- Server > Health: card 06 Notification mail with the state of each record
and a link to Settings, beside Configuration (07); part of the polled
fragment; Re-check DNS forces it too. Overview does not run this check.
- help.go: the Notifications topic and the clauses in Settings and Your
account, word for word with help.html.
If the server's key cannot be read the pages still render: the DKIM record
is left out and SPF is shown unchecked.
e2e: the administrator gets a mailbox behind the sink and the server's DKIM
record from Settings is published; the level-2 refusal of the next step must
then arrive as a notification from postmaster@mail.e2e.test, signed as that
name with the key Settings shows, and must not be a row of the Outbound log.
The rotation step now waits for Postfix to be running: it follows a step that
restarts the container, and logrotate's `postfix reload` failed in between.
On the test server, for this tree: go vet clean, go test ./... 23 packages
ok, make e2e ok (147 s); the notification reached the sink 28 s after the
refusal.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
42 lines
3.1 KiB
HTML
42 lines
3.1 KiB
HTML
{{/* Account (mockup account.html): the signed-in user's own — name and e-mail,
|
|
and password. Each form is its own POST and neither asks for the other's
|
|
fields. Every role has this page; the instance's settings are on Server >
|
|
Settings (settings.html). */}}
|
|
{{define "content"}}
|
|
{{template "page_head" .Head}}
|
|
{{if .Flash}}{{template "flash" .Flash}}{{end}}
|
|
|
|
<div class="columns">
|
|
<div class="column is-6">
|
|
{{template "box_open" .Profile}}
|
|
{{template "body_open"}}
|
|
<form class="sp-form" method="post" action="/account/profile">
|
|
<div class="field"><label class="label" for="username">Username</label><div class="control has-icons-left"><input class="input" id="username" name="username" value="{{.Username}}" autocomplete="username" autocapitalize="none" spellcheck="false" required><span class="icon is-left"><i class="ti ti-user"></i></span></div></div>
|
|
<div class="field"><label class="label" for="email">E-mail</label><div class="control has-icons-left"><input class="input" id="email" name="email" type="email" value="{{.Email}}" autocomplete="email" autocapitalize="none" spellcheck="false"><span class="icon is-left"><i class="ti ti-mail"></i></span></div>
|
|
<p class="help">Your own address. A domain's report address can be filled with it from Domain settings.</p></div>
|
|
<div class="field"><label class="checkbox"><input type="checkbox" name="notify"{{if .Notify}} checked{{end}}> Send me notifications</label>
|
|
<p class="help">To this address, when something needs you: a DNS record of a domain stops matching, a rate limit refuses mail, the TLS certificate is about to expire, a message has waited in the queue for three days. <a href="/help#notifications">What is sent and when</a></p></div>
|
|
<button type="submit" class="button is-primary">Save profile</button>
|
|
</form>
|
|
{{template "body_close"}}
|
|
{{template "box_close"}}
|
|
</div>
|
|
|
|
<div class="column is-6">
|
|
{{template "box_open" .Password}}
|
|
{{template "body_open"}}
|
|
<form class="sp-form" method="post" action="/account/password">
|
|
<div class="field"><label class="label" for="current_password">Current password</label><div class="control"><input class="input" id="current_password" name="current_password" type="password" autocomplete="current-password" required></div></div>
|
|
<div class="sp-pair">
|
|
<div class="field"><label class="label" for="new_password">New password</label><div class="control"><input class="input" id="new_password" name="new_password" type="password" autocomplete="new-password" required></div></div>
|
|
<div class="field"><label class="label" for="new_password_confirm">Repeat</label><div class="control"><input class="input" id="new_password_confirm" name="new_password_confirm" type="password" autocomplete="new-password" required></div></div>
|
|
</div>
|
|
<p class="help mb-3">Changing it signs out every other session of this account; this one stays signed in.</p>
|
|
<button type="submit" class="button">Change password</button>
|
|
</form>
|
|
{{template "body_close"}}
|
|
{{template "box_close"}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|