Update support multiple domain and error handling

This commit is contained in:
Salman
2024-02-11 10:55:36 +05:30
parent 3f96f0a8fb
commit 2ef8781378
5 changed files with 45 additions and 22 deletions
+1 -1
View File
@@ -105,7 +105,7 @@ export const registerSamlRouter = async (server: FastifyZodProvider) => {
email,
firstName: profile.firstName as string,
lastName: profile.lastName as string,
isSignupAllowed: Boolean(serverCfg.allowSignUp && serverCfg.inviteOnlySignUp),
isSignupAllowed: Boolean(serverCfg.allowSignUp),
relayState: (req.body as { RelayState?: string }).RelayState,
authProvider: (req as unknown as FastifyRequest).ssoConfig?.authProvider as string,
orgId: (req as unknown as FastifyRequest).ssoConfig?.orgId as string
@@ -4,6 +4,7 @@ import { UsersSchema } from "@app/db/schemas";
import { getConfig } from "@app/lib/config/env";
import { BadRequestError } from "@app/lib/errors";
import { authRateLimit } from "@app/server/config/rateLimiter";
import { getServerCfg } from "@app/services/super-admin/super-admin-service";
import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types";
export const registerSignupRouter = async (server: FastifyZodProvider) => {
@@ -25,15 +26,16 @@ export const registerSignupRouter = async (server: FastifyZodProvider) => {
},
handler: async (req) => {
const { email } = req.body;
const config = await server.services.superAdmin.initServerCfg();
const serverCfg = await getServerCfg();
if (config?.allowSpecificDomainSignUp) {
if (serverCfg?.allowSpecificDomainSignUp) {
const domain = email.split("@")[1];
if (domain !== config.allowSpecificDomainSignUp)
const allowedDomains = serverCfg.allowSpecificDomainSignUp.split(",").map((e) => e.trim());
if (!allowedDomains.includes(domain)) {
throw new BadRequestError({
message: `User email domain (@${domain}) is not supported`
message: `Email with a domain (@${domain}) is not supported`
});
}
}
await server.services.signup.beginEmailSignupProcess(email);
return { message: `Sent an email verification code to ${email}` };
@@ -275,10 +275,10 @@ export const authLoginServiceFactory = ({ userDAL, tokenService, smtpService }:
if (serverCfg?.allowSpecificDomainSignUp) {
const domain = email.split("@")[1];
if (domain !== serverCfg.allowSpecificDomainSignUp)
const allowedDomains = serverCfg.allowSpecificDomainSignUp.split(",").map((e) => e.trim());
if (!allowedDomains.includes(domain))
throw new BadRequestError({
message: `User email domain (@${domain}) is not supported`,
message: `Email with a domain (@${domain}) is not supported`,
name: "Oauth 2 login"
});
}