feature flag for signup

This commit is contained in:
Timur Ercan
2023-03-19 14:59:10 +01:00
parent 72914c49c4
commit 025e6a4eb1
4 changed files with 38 additions and 16 deletions

View File

@ -19,3 +19,7 @@ NEXTAUTH_URL='http://localhost:3000'
SENDGRID_API_KEY=''
# Sender for signing requests and completion mails.
MAIL_FROM=''
#FEATURE FLAGS
# Allow users to register via the /signup page. Otherwise they will be redirect to the home page.
ALLOW_SIGNUP=false

View File

@ -17,12 +17,11 @@ interface LoginValues {
csrfToken: string;
}
export default function Login() {
export default function Login(props: any) {
const router = useRouter();
const methods = useForm<LoginValues>();
const { register, formState } = methods;
const [errorMessage, setErrorMessage] = useState<string | null>(null);
let callbackUrl =
typeof router.query?.callbackUrl === "string"
? router.query.callbackUrl
@ -117,7 +116,6 @@ export default function Login() {
/>
</div>
</div>
<div className="flex items-center justify-between">
<div className="text-sm">
<a href="#" className="font-medium text-neon hover:text-neon">
@ -125,7 +123,6 @@ export default function Login() {
</a>
</div>
</div>
<div>
<Button
type="submit"
@ -152,6 +149,7 @@ export default function Login() {
<div className="relative flex justify-center"></div>
</div>
</div>
{props.allowSignup ? (
<p className="mt-2 text-center text-sm text-gray-600">
Are you new here?{" "}
<Link
@ -161,6 +159,7 @@ export default function Login() {
Create a new Account
</Link>
</p>
) : null}
</form>
</FormProvider>
</div>

View File

@ -1,13 +1,23 @@
import Head from "next/head";
import Login from "../components/login";
export default function LoginPage() {
export default function LoginPage(props: any) {
return (
<>
<Head>
<title>Login | Documenso</title>
</Head>
<Login></Login>
<Login allowSignup={props.ALLOW_SIGNUP}></Login>
</>
);
}
export async function getServerSideProps(context: any) {
const ALLOW_SIGNUP = process.env.ALLOW_SIGNUP === "true";
return {
props: {
ALLOW_SIGNUP: ALLOW_SIGNUP,
},
};
}

View File

@ -15,6 +15,15 @@ export default function SignupPage(props: { source: string }) {
export async function getServerSideProps(context: any) {
const signupSource: string = context.query["source"];
if (process.env.ALLOW_SIGNUP === "false")
return {
redirect: {
destination: "/login",
permanent: false,
},
};
return {
props: {
source: signupSource ? signupSource : "",