edit users

This commit is contained in:
2025-07-21 09:37:53 +02:00
parent 6e0880eb3d
commit 50e066f794
46 changed files with 1284 additions and 232 deletions

View File

@@ -1,9 +1,19 @@
import z from 'zod';
import { boolean, object, string } from 'yup';
import { registerSchema } from './auth';
export const createUserSchema = registerSchema.extend({
admin: z
.boolean()
.default(false)
.prefault(() => false),
export const createUserSchema = registerSchema.concat(
object({
admin: boolean().default(false),
})
);
export const editUserSchema = object({
name: string().trim().min(1).required('required'),
email: string().email().trim().required('required'),
password: string()
.trim()
.min(12)
.max(32)
.transform((s: string) => (s.length > 0 ? s : undefined))
.optional(),
admin: boolean().required('required'),
});

View File

@@ -1,23 +1,13 @@
import z from 'zod';
import { object, string } from 'yup';
export const registerSchema = z.object({
name: z.string('This field is required').trim().min(1),
email: z
.email({
error: 'This field is required',
pattern: z.regexes.rfc5322Email,
})
.trim(),
password: z.string('This field is required').trim().min(12).max(32),
export const registerSchema = object({
name: string().trim().min(1).required('required'),
email: string().trim().email('Expected a valid email').required('required'),
password: string().trim().min(12).max(32).required('required'),
});
export const loginSchema = z.object({
email: z
.email({
error: 'This field is required',
pattern: z.regexes.rfc5322Email,
})
.trim(),
export const loginSchema = object({
email: string().trim().email('Expected a valid email').required('required'),
// Don't include the min and max here to let bad actors waste their time
password: z.string('This field is required').trim(),
password: string().trim().required('required'),
});