feat: confirm admin creation password

This commit is contained in:
2026-06-26 13:04:40 +01:00
parent a3a7b59757
commit 1dcbe2e3fe
2 changed files with 29 additions and 6 deletions
+7 -1
View File
@@ -6,11 +6,17 @@ const optionalPassword = z.string().refine((value) => value.length === 0 || valu
});
const roleSchema = z.enum(['admin', 'user'], 'Select a role.');
export const createAdminSchema = z.object({
export const createAdminSchema = z
.object({
name: z.string().trim().min(1, 'Enter a name.'),
email: z.email('Enter a valid email address.').transform((value) => value.toLowerCase()),
password: optionalPassword,
confirmPassword: optionalPassword,
role: roleSchema.default('admin')
})
.refine((data) => data.password === data.confirmPassword, {
message: 'Confirm password must match password.',
path: ['confirmPassword']
});
export const editAdminSchema = z.object({
@@ -76,6 +76,23 @@
<Field.Error><FieldErrors /></Field.Error>
</Field.Field>
</FormField>
<FormField form={createForm} name="confirmPassword">
<Field.Field>
<Control id="create-confirm-password">
{#snippet children({ props })}
<Field.Label>Confirm password</Field.Label>
<Input
{...props}
type="password"
autocomplete="new-password"
placeholder="Repeat password"
bind:value={$createData.confirmPassword}
/>
{/snippet}
</Control>
<Field.Error><FieldErrors /></Field.Error>
</Field.Field>
</FormField>
<FormField form={createForm} name="role">
<Field.Field>
<Control id="create-role">