diff --git a/apps/builder/src/features/auth/components/SignInError.tsx b/apps/builder/src/features/auth/components/SignInError.tsx index e2496f553..1f57b1149 100644 --- a/apps/builder/src/features/auth/components/SignInError.tsx +++ b/apps/builder/src/features/auth/components/SignInError.tsx @@ -17,9 +17,10 @@ export const SignInError = ({ error }: Props) => { OAuthAccountNotLinked: t('auth.error.oauthNotLinked'), default: t('auth.error.unknown'), } + if (!errors[error]) return null return ( - {errors[error] ?? errors[error]} + {errors[error]} ) } diff --git a/apps/builder/src/features/auth/components/SignInForm.tsx b/apps/builder/src/features/auth/components/SignInForm.tsx index 475bbe222..be471951e 100644 --- a/apps/builder/src/features/auth/components/SignInForm.tsx +++ b/apps/builder/src/features/auth/components/SignInForm.tsx @@ -65,6 +65,17 @@ export const SignInForm = ({ })() }, [status, router]) + useEffect(() => { + if (!router.isReady) return + if (router.query.error === 'ip-banned') { + showToast({ + status: 'info', + description: + 'Your account has suspicious activity and is being reviewed by our team. Feel free to contact us.', + }) + } + }, [router.isReady, router.query.error, showToast]) + const handleEmailChange = (e: ChangeEvent) => setEmailValue(e.target.value) diff --git a/apps/builder/src/pages/api/auth/[...nextauth].ts b/apps/builder/src/pages/api/auth/[...nextauth].ts index d512f0319..438947139 100644 --- a/apps/builder/src/pages/api/auth/[...nextauth].ts +++ b/apps/builder/src/pages/api/auth/[...nextauth].ts @@ -139,6 +139,7 @@ export const getAuthOptions = ({ pages: { signIn: '/signin', newUser: env.NEXT_PUBLIC_ONBOARDING_TYPEBOT_ID ? '/onboarding' : undefined, + error: '/signin', }, events: { signIn({ user }) { @@ -199,12 +200,12 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { if ( env.RADAR_HIGH_RISK_KEYWORDS && - req.url?.startsWith('/api/auth/signin') && - req.method === 'POST' + ((req.method === 'POST' && req.url?.startsWith('/api/auth/signin')) || + (req.method === 'GET' && req.url?.startsWith('/api/auth/callback'))) ) { const ip = getIp(req) if (ip) { - const isIpBanned = await prisma.bannedIp.findFirst({ + const isIpBanned = await prisma.bannedIp.count({ where: { ip, },