<labelclass="small">Deleting removes the account, its tokens, keys and memberships for good; what it wrote stays under its name, which stays retired. Type <strong>{{ a.username }}</strong> to confirm:
<selectid="regmode"name="mode">{% for m in ["open", "invite", "closed"] %}<optionvalue="{{ m }}"{% ifmode.as_str() == *m %} selected{% endif %}>{{ m }}</option>{% endfor %}</select>
{% if !invitations.is_empty() %}<ulclass="plain small">{% for (code, used, at) in invitations %}<li><code>{{ code }}</code> {% if used.is_some() %}<spanclass="mute">used</span>{% else %}<ahref="/register?invite={{ code }}">link</a>{% endif %} · {{ at|ago_i }}</li>{% endfor %}</ul>{% endif %}
54
</section>
55
<sectionclass="panel"id="organisations">
56
<h2>Organisations</h2>
57
{% if orgs.is_empty() %}<pclass="mute small">None yet.</p>{% else %}<ulclass="plain">{% for o in orgs %}<li><imgclass="avatar xs"src="/avatar/{{ o.name }}"alt=""><ahref="/{{ o.name }}">{{ o.name }}</a> · <aclass="small"href="/orgs/{{ o.name }}/settings">settings</a></li>{% endfor %}</ul>{% endif %}
58
</section>
59
<sectionclass="panel"id="signin">
60
<h2>Sign in with</h2>
61
<pclass="small mute">A first sign-in links the account with the same verified email, or makes an account when registration is open. Secrets are kept sealed.</p>
<selectid="mailservice"name="service"data-mail-service>{% for (v, label) in mail_services() %}<optionvalue="{{ v }}"{% ifmail.service== *v %} selected{% endif %}>{{ label }}</option>{% endfor %}</select>
80
<pclass="small mute"data-for="resend">Resend sends through <code>smtp.resend.com</code>; the login is <code>resend</code> and the password your API key. Verify your domain in Resend first.</p>
81
<pclass="small mute"data-for="ses">Amazon SES: the region your identity is verified in, and the SMTP credentials from SES › SMTP settings (not an AWS access key).</p>
82
<pclass="small mute"data-for="mailgun">Mailgun: <code>us</code> or <code>eu</code>, and the domain's SMTP login and password.</p>
83
<divdata-for="ses mailgun"><labelfor="mailregion">Region</label><inputtype="text"id="mailregion"name="region"value="{{ mail.region }}"placeholder="eu-west-2 for SES; us or eu for Mailgun"></div>
<labelfor="mailsecurity">Security</label><selectid="mailsecurity"name="security"><optionvalue="starttls"{% ifmail.security== "starttls" %} selected{% endif %}>STARTTLS (usually port 587)</option><optionvalue="tls"{% ifmail.security== "tls" %} selected{% endif %}>TLS from the start (usually port 465)</option><optionvalue="none"{% ifmail.security== "none" %} selected{% endif %}>None (a relay on this machine)</option></select></div>
<divdata-for="resend ses mailgun smtp"><labelfor="mailsecret">{% if mail.service == "resend" %}API key{% else %}Password or API key{% endif %}</label><inputtype="password"id="mailsecret"name="secret"value=""autocomplete="new-password"placeholder="{% if mail.has_secret %}saved: leave empty to keep it{% else %}{% endif %}"></div>
<pclass="small mute">{% if mail_enabled %}Mail is on: verification and reset links go by email.{% else %}Mail is off: verification and reset links are issued by hand.{% endif %} Off turns it off. Passwords and keys stay on the server and are never shown again. Every service is SMTP underneath, so any provider works: <code>smtps://USER:PASSWORD@HOST:465</code> for TLS from the start, or <code>smtp://USER:PASSWORD@HOST:587</code>, which the hub sends with STARTTLS required (add <code>?tls=opportunistic</code> or <code>?tls=none</code> to say otherwise; a relay on this machine needs none).</p>
{% call ai::panel("/admin", assistants, shell.csrf, "Every repository on the site may ask these, unless an organisation or repository turns one off.") %}
{% for r in audit %}<tr><td><timetitle="{{ r.at_ms|when_i }}">{{ r.at_ms|ago_i }}</time></td><td>{{ r.actor }}</td><td><code>{{ r.action }}</code></td><td>{{ r.target }}</td><tdclass="mute">{{ r.detail }}</td></tr>{% endfor %}
117
</table></div>
118
<pclass="pager small"><ahref="/admin#audit">newest</a>{% if let Some(o) = audit_older %} <aclass="go small"href="/admin?audit_before={{ o }}#audit">older</a>{% endif %}</p>