diff --git a/backend/src/services/org/org-service.ts b/backend/src/services/org/org-service.ts index 87f0cbd8d..8417f2444 100644 --- a/backend/src/services/org/org-service.ts +++ b/backend/src/services/org/org-service.ts @@ -458,12 +458,6 @@ export const orgServiceFactory = ({ const org = await orgDAL.findOrgById(orgId); - if (org?.authEnforced) { - throw new BadRequestError({ - message: "Failed to invite user due to org-level auth enforced for organization" - }); - } - const isEmailInvalid = await isDisposableEmail(inviteeEmails); if (isEmailInvalid) { throw new BadRequestError({ @@ -472,20 +466,6 @@ export const orgServiceFactory = ({ }); } const plan = await licenseService.getPlan(orgId); - if (plan?.slug !== "enterprise" && plan?.memberLimit && plan.membersUsed >= plan.memberLimit) { - // limit imposed on number of members allowed / number of members used exceeds the number of members allowed - throw new BadRequestError({ - message: "Failed to invite member due to member limit reached. Upgrade plan to invite more members." - }); - } - - if (plan?.slug !== "enterprise" && plan?.identityLimit && plan.identitiesUsed >= plan.identityLimit) { - // limit imposed on number of identities allowed / number of identities used exceeds the number of identities allowed - throw new BadRequestError({ - message: "Failed to invite member due to member limit reached. Upgrade plan to invite more members." - }); - } - const isCustomOrgRole = !Object.values(OrgMembershipRole).includes(organizationRoleSlug as OrgMembershipRole); if (isCustomOrgRole) { if (!plan?.rbac) @@ -570,7 +550,7 @@ export const orgServiceFactory = ({ ); } - const [inviteeMembership] = await orgDAL.findMembership( + const [inviteeOrgMembership] = await orgDAL.findMembership( { [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId, [`${TableName.OrgMembership}.userId` as "userId"]: inviteeUserId @@ -579,7 +559,27 @@ export const orgServiceFactory = ({ ); // if there exist no org membership we set is as given by the request - if (!inviteeMembership) { + if (!inviteeOrgMembership) { + if (plan?.slug !== "enterprise" && plan?.memberLimit && plan.membersUsed >= plan.memberLimit) { + // limit imposed on number of members allowed / number of members used exceeds the number of members allowed + throw new BadRequestError({ + message: "Failed to invite member due to member limit reached. Upgrade plan to invite more members." + }); + } + + if (plan?.slug !== "enterprise" && plan?.identityLimit && plan.identitiesUsed >= plan.identityLimit) { + // limit imposed on number of identities allowed / number of identities used exceeds the number of identities allowed + throw new BadRequestError({ + message: "Failed to invite member due to member limit reached. Upgrade plan to invite more members." + }); + } + + if (org?.authEnforced) { + throw new BadRequestError({ + message: "Failed to invite user due to org-level auth enforced for organization" + }); + } + // as its used by project invite also ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Member); let roleId;