feat: env variable to disable signing up

This commit is contained in:
Navindu Amarakoon
2023-12-09 10:37:16 +05:30
parent b39a42ecd2
commit 323380d757
3 changed files with 20 additions and 6 deletions

View File

@ -13,12 +13,14 @@ export default function SignInPage() {
<SignInForm className="mt-4" /> <SignInForm className="mt-4" />
{process.env.NEXT_PUBLIC_DISABLE_SIGNUP !== 'true' && (
<p className="text-muted-foreground mt-6 text-center text-sm"> <p className="text-muted-foreground mt-6 text-center text-sm">
Don't have an account?{' '} Don't have an account?{' '}
<Link href="/signup" className="text-primary duration-200 hover:opacity-70"> <Link href="/signup" className="text-primary duration-200 hover:opacity-70">
Sign up Sign up
</Link> </Link>
</p> </p>
)}
<p className="mt-2.5 text-center"> <p className="mt-2.5 text-center">
<Link <Link

View File

@ -1,8 +1,13 @@
import Link from 'next/link'; import Link from 'next/link';
import { redirect } from 'next/navigation';
import { SignUpForm } from '~/components/forms/signup'; import { SignUpForm } from '~/components/forms/signup';
export default function SignUpPage() { export default function SignUpPage() {
if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
redirect('/signin');
}
return ( return (
<div> <div>
<h1 className="text-4xl font-semibold">Create a new account</h1> <h1 className="text-4xl font-semibold">Create a new account</h1>

View File

@ -11,6 +11,13 @@ import { ZSignUpMutationSchema, ZVerifyPasswordMutationSchema } from './schema';
export const authRouter = router({ export const authRouter = router({
signup: procedure.input(ZSignUpMutationSchema).mutation(async ({ input }) => { signup: procedure.input(ZSignUpMutationSchema).mutation(async ({ input }) => {
try { try {
if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
throw new TRPCError({
code: 'BAD_REQUEST',
message: 'Signups are disabled.',
});
}
const { name, email, password, signature } = input; const { name, email, password, signature } = input;
const user = await createUser({ name, email, password, signature }); const user = await createUser({ name, email, password, signature });