🐛 Fix schema validation for user creation
This commit is contained in:
@@ -74,5 +74,5 @@ const randomString = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const createAccountSecurityStepValidationSchema = z.object({
|
export const createAccountSecurityStepValidationSchema = z.object({
|
||||||
password: z.string().min(10).max(50),
|
password: z.string().min(8).max(100),
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { z } from 'zod';
|
|||||||
import { hashPassword } from '~/utils/security';
|
import { hashPassword } from '~/utils/security';
|
||||||
import {
|
import {
|
||||||
colorSchemeParser,
|
colorSchemeParser,
|
||||||
|
createNewUserSchema,
|
||||||
signUpFormSchema,
|
signUpFormSchema,
|
||||||
updateSettingsValidationSchema,
|
updateSettingsValidationSchema,
|
||||||
} from '~/validations/user';
|
} from '~/validations/user';
|
||||||
@@ -188,29 +189,21 @@ export const userRouter = createTRPCRouter({
|
|||||||
nextCursor,
|
nextCursor,
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
createUser: publicProcedure
|
createUser: publicProcedure.input(createNewUserSchema).mutation(async ({ ctx, input }) => {
|
||||||
.input(
|
const salt = bcrypt.genSaltSync(10);
|
||||||
z.object({
|
const hashedPassword = hashPassword(input.password, salt);
|
||||||
username: z.string(),
|
await ctx.prisma.user.create({
|
||||||
email: z.string().email().optional(),
|
data: {
|
||||||
password: z.string().min(8).max(100),
|
name: input.username,
|
||||||
})
|
email: input.email,
|
||||||
)
|
password: hashedPassword,
|
||||||
.mutation(async ({ ctx, input }) => {
|
salt: salt,
|
||||||
const salt = bcrypt.genSaltSync(10);
|
settings: {
|
||||||
const hashedPassword = hashPassword(input.password, salt);
|
create: {},
|
||||||
await ctx.prisma.user.create({
|
|
||||||
data: {
|
|
||||||
name: input.username,
|
|
||||||
email: input.email,
|
|
||||||
password: hashedPassword,
|
|
||||||
salt: salt,
|
|
||||||
settings: {
|
|
||||||
create: {},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
}),
|
});
|
||||||
|
}),
|
||||||
|
|
||||||
deleteUser: publicProcedure
|
deleteUser: publicProcedure
|
||||||
.input(
|
.input(
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ export const signUpFormSchema = z
|
|||||||
path: ['passwordConfirmation'],
|
path: ['passwordConfirmation'],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export const createNewUserSchema = z.object({
|
||||||
|
username: z.string(),
|
||||||
|
email: z.string().email().optional(),
|
||||||
|
password: z.string().min(8).max(100),
|
||||||
|
});
|
||||||
|
|
||||||
export const colorSchemeParser = z
|
export const colorSchemeParser = z
|
||||||
.enum(['light', 'dark', 'environment'])
|
.enum(['light', 'dark', 'environment'])
|
||||||
.default('environment')
|
.default('environment')
|
||||||
|
|||||||
Reference in New Issue
Block a user