66 lines
1.6 KiB
Svelte
66 lines
1.6 KiB
Svelte
<script lang="ts">
|
|
import type { PageProps } from './$types';
|
|
let { data, form }: PageProps = $props();
|
|
</script>
|
|
|
|
<svelte:head><title>Erstadmin einrichten | Sendewerk</title></svelte:head>
|
|
|
|
<section class="auth-card">
|
|
<p class="eyebrow">Einmalige Einrichtung</p>
|
|
<h1>Ersten Barkeeper anlegen</h1>
|
|
<p>
|
|
Dieses Konto verwaltet Einladungen, Rollen und Sperren. Danach wird die Einrichtung geschlossen.
|
|
</p>
|
|
{#if !data.configured}
|
|
<div class="form-message error" role="alert">
|
|
Vor dem Start muss ein mindestens 32 Zeichen langes <code>SENDEWERK_SETUP_TOKEN</code>
|
|
konfiguriert werden.
|
|
</div>
|
|
{:else}
|
|
{#if form?.error}<div class="form-message error" role="alert">{form.error}</div>{/if}
|
|
<form class="auth-form" method="POST">
|
|
<label
|
|
>Betreiber-Setup-Token<input
|
|
name="setupToken"
|
|
type="password"
|
|
required
|
|
autocomplete="off"
|
|
/></label
|
|
>
|
|
<label
|
|
>Name<input
|
|
name="displayName"
|
|
required
|
|
maxlength="80"
|
|
value={form?.displayName ?? ''}
|
|
autocomplete="name"
|
|
/></label
|
|
>
|
|
<label
|
|
>E-Mail<input
|
|
name="email"
|
|
type="email"
|
|
required
|
|
maxlength="254"
|
|
value={form?.email ?? ''}
|
|
autocomplete="email"
|
|
/></label
|
|
>
|
|
<label
|
|
>Passwort<input
|
|
name="password"
|
|
type="password"
|
|
required
|
|
minlength="12"
|
|
maxlength="256"
|
|
autocomplete="new-password"
|
|
/></label
|
|
>
|
|
<p class="field-hint">
|
|
Mindestens 12 Zeichen. Das Passwort wird ausschließlich als Argon2id-Hash gespeichert.
|
|
</p>
|
|
<button class="primary-button" type="submit">Barkeeper anlegen</button>
|
|
</form>
|
|
{/if}
|
|
</section>
|