{{/* The user form (mockup user.html): one form that creates a panel user and edits one. The account is the left column; on the right the domains the user reaches, outbound and inbound as two lists, each with its All. panel.js hides the lists while the role is Global (data-global-role on the select, data-domain-pick on the boxes); without scripts they stay in view and the server ignores them for the global role. A blank password keeps the current one. Your account password is asked for a new user and for a change of password, e-mail or role (audit 2026-10-17, A2); the server decides. */}} {{define "content"}} {{template "page_head" .Head}} {{if .Flash}}{{template "flash" .Flash}}{{end}}
{{template "box_open" .Account}} {{template "body_open"}}

The user's own address. They can change it under Account. A new one is sent a link to confirm it; until it is confirmed no reset link goes to it.

{{if .NewUser}}At least {{.PasswordMin}} characters.{{else}}Leave empty to keep the current one.{{end}}

{{if .RoleLocked}}{{end}}

Everyone here is an administrator; the role is the reach. Global also sees Server and is the only one who adds or deletes domains. The only global user cannot be changed to domain or deleted.

Yours, the one you sign in with, not this user's. Asked when you add a user, or change a password, an e-mail or a role here: a session left open must not be enough to hand out an account.

{{template "body_close"}} {{template "box_close"}}
{{template "box_open" .Outbound}} {{template "body_open"}}
{{range .OutDomains}}
{{end}}

With All ticked the single domains are ignored.

{{template "body_close"}} {{template "box_close"}} {{if .ShowInbound}} {{template "box_open" .Inbound}} {{template "body_open"}}
{{range .InDomains}}
{{end}}

Granted separately from outbound: the same name on both lists is two assignments. The domain role needs at least one domain, or All, on either list.

{{template "body_close"}} {{template "box_close"}} {{end}}
Cancel
{{end}}