From 06f3a6d262eeb0ebe6a02404d2c881c2823e21cb Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sun, 10 Mar 2024 14:44:18 -0700 Subject: [PATCH] Make LDAP config fields not nullable --- .../migrations/20240305165532_ldap-config.ts | 18 ++++++++-------- backend/src/db/schemas/ldap-configs.ts | 18 ++++++++-------- backend/src/ee/services/scim/scim-service.ts | 21 +++++++++++-------- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/backend/src/db/migrations/20240305165532_ldap-config.ts b/backend/src/db/migrations/20240305165532_ldap-config.ts index 0b4e36250..8f30c062f 100644 --- a/backend/src/db/migrations/20240305165532_ldap-config.ts +++ b/backend/src/db/migrations/20240305165532_ldap-config.ts @@ -11,16 +11,16 @@ export async function up(knex: Knex): Promise { t.foreign("orgId").references("id").inTable(TableName.Organization).onDelete("CASCADE"); t.boolean("isActive").notNullable(); t.string("url").notNullable(); - t.string("encryptedBindDN"); - t.string("bindDNIV"); - t.string("bindDNTag"); - t.string("encryptedBindPass"); - t.string("bindPassIV"); - t.string("bindPassTag"); + t.string("encryptedBindDN").notNullable(); + t.string("bindDNIV").notNullable(); + t.string("bindDNTag").notNullable(); + t.string("encryptedBindPass").notNullable(); + t.string("bindPassIV").notNullable(); + t.string("bindPassTag").notNullable(); t.string("searchBase").notNullable(); - t.text("encryptedCACert"); - t.string("caCertIV"); - t.string("caCertTag"); + t.text("encryptedCACert").notNullable(); + t.string("caCertIV").notNullable(); + t.string("caCertTag").notNullable(); t.timestamps(true, true, true); }); } diff --git a/backend/src/db/schemas/ldap-configs.ts b/backend/src/db/schemas/ldap-configs.ts index cf0d96847..e3c6c8c75 100644 --- a/backend/src/db/schemas/ldap-configs.ts +++ b/backend/src/db/schemas/ldap-configs.ts @@ -12,16 +12,16 @@ export const LdapConfigsSchema = z.object({ orgId: z.string().uuid(), isActive: z.boolean(), url: z.string(), - encryptedBindDN: z.string().nullable().optional(), - bindDNIV: z.string().nullable().optional(), - bindDNTag: z.string().nullable().optional(), - encryptedBindPass: z.string().nullable().optional(), - bindPassIV: z.string().nullable().optional(), - bindPassTag: z.string().nullable().optional(), + encryptedBindDN: z.string(), + bindDNIV: z.string(), + bindDNTag: z.string(), + encryptedBindPass: z.string(), + bindPassIV: z.string(), + bindPassTag: z.string(), searchBase: z.string(), - encryptedCACert: z.string().nullable().optional(), - caCertIV: z.string().nullable().optional(), - caCertTag: z.string().nullable().optional(), + encryptedCACert: z.string(), + caCertIV: z.string(), + caCertTag: z.string(), createdAt: z.date(), updatedAt: z.date() }); diff --git a/backend/src/ee/services/scim/scim-service.ts b/backend/src/ee/services/scim/scim-service.ts index d8cd55cd2..c542b2340 100644 --- a/backend/src/ee/services/scim/scim-service.ts +++ b/backend/src/ee/services/scim/scim-service.ts @@ -281,15 +281,18 @@ export const scimServiceFactory = ({ } const appCfg = getConfig(); - await smtpService.sendMail({ - template: SmtpTemplates.ScimUserProvisioned, - subjectLine: "Infisical organization invitation", - recipients: email ? [email] : [], - substitutions: { - organizationName: org.name, - callback_url: `${appCfg.SITE_URL}/api/v1/sso/redirect/saml2/organizations/${org.slug}` - } - }); + + if (email) { + await smtpService.sendMail({ + template: SmtpTemplates.ScimUserProvisioned, + subjectLine: "Infisical organization invitation", + recipients: [email], + substitutions: { + organizationName: org.name, + callback_url: `${appCfg.SITE_URL}/api/v1/sso/redirect/saml2/organizations/${org.slug}` + } + }); + } return buildScimUser({ userId: user.id,