From f034adba76597dff665890a0f70f05a6a672cb5b Mon Sep 17 00:00:00 2001 From: = Date: Mon, 25 Nov 2024 22:22:54 +0530 Subject: [PATCH] feat: resolved saml failing when signup is disabled --- backend/src/server/routes/v3/signup-router.ts | 7 ------- backend/src/services/auth/auth-signup-service.ts | 11 ++++++++++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/src/server/routes/v3/signup-router.ts b/backend/src/server/routes/v3/signup-router.ts index d801e85ef..e95254816 100644 --- a/backend/src/server/routes/v3/signup-router.ts +++ b/backend/src/server/routes/v3/signup-router.ts @@ -119,13 +119,6 @@ export const registerSignupRouter = async (server: FastifyZodProvider) => { if (!userAgent) throw new Error("user agent header is required"); const appCfg = getConfig(); - const serverCfg = await getServerCfg(); - if (!serverCfg.allowSignUp) { - throw new ForbiddenRequestError({ - message: "Signup's are disabled" - }); - } - const { user, accessToken, refreshToken, organizationId } = await server.services.signup.completeEmailAccountSignup({ ...req.body, diff --git a/backend/src/services/auth/auth-signup-service.ts b/backend/src/services/auth/auth-signup-service.ts index b55d01308..a652c2a5b 100644 --- a/backend/src/services/auth/auth-signup-service.ts +++ b/backend/src/services/auth/auth-signup-service.ts @@ -9,7 +9,7 @@ import { isAuthMethodSaml } from "@app/ee/services/permission/permission-fns"; import { getConfig } from "@app/lib/config/env"; import { infisicalSymmetricDecrypt, infisicalSymmetricEncypt } from "@app/lib/crypto/encryption"; import { generateUserSrpKeys, getUserPrivateKey } from "@app/lib/crypto/srp"; -import { NotFoundError } from "@app/lib/errors"; +import { ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; import { isDisposableEmail } from "@app/lib/validator"; import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; @@ -23,6 +23,7 @@ import { TOrgServiceFactory } from "../org/org-service"; import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; +import { getServerCfg } from "../super-admin/super-admin-service"; import { TUserDALFactory } from "../user/user-dal"; import { UserEncryption } from "../user/user-types"; import { TAuthDALFactory } from "./auth-dal"; @@ -151,6 +152,8 @@ export const authSignupServiceFactory = ({ authorization }: TCompleteAccountSignupDTO) => { const appCfg = getConfig(); + const serverCfg = await getServerCfg(); + const user = await userDAL.findOne({ username: email }); if (!user || (user && user.isAccepted)) { throw new Error("Failed to complete account for complete user"); @@ -163,6 +166,12 @@ export const authSignupServiceFactory = ({ authMethod = userAuthMethod; organizationId = orgId; } else { + // disallow signup if disabled. we are not doing this for providerAuthToken because we allow signups via saml or sso + if (!serverCfg.allowSignUp) { + throw new ForbiddenRequestError({ + message: "Signup's are disabled" + }); + } validateSignUpAuthorization(authorization, user.id); }