create users through admin page
This commit is contained in:
9
frontend/lib/schemas/admin.ts
Normal file
9
frontend/lib/schemas/admin.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import z from 'zod';
|
||||
import { registerSchema } from './auth';
|
||||
|
||||
export const createUserSchema = registerSchema.extend({
|
||||
admin: z
|
||||
.boolean()
|
||||
.default(false)
|
||||
.prefault(() => false),
|
||||
});
|
||||
23
frontend/lib/schemas/auth.ts
Normal file
23
frontend/lib/schemas/auth.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import z from 'zod';
|
||||
|
||||
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 loginSchema = z.object({
|
||||
email: z
|
||||
.email({
|
||||
error: 'This field is required',
|
||||
pattern: z.regexes.rfc5322Email,
|
||||
})
|
||||
.trim(),
|
||||
// Don't include the min and max here to let bad actors waste their time
|
||||
password: z.string('This field is required').trim(),
|
||||
});
|
||||
Reference in New Issue
Block a user