diff --git a/website/api/controllers/deliver-deal-registration-submission.js b/website/api/controllers/deliver-deal-registration-submission.js index e85a9b86d2..6943462e57 100644 --- a/website/api/controllers/deliver-deal-registration-submission.js +++ b/website/api/controllers/deliver-deal-registration-submission.js @@ -10,13 +10,13 @@ module.exports = { inputs: { submittersFirstName: {type: 'string', required: true}, submittersLastName: {type: 'string', required: true}, - submittersEmailAddress: {type: 'string', isEmail: true,}, + submittersEmailAddress: {type: 'string', isEmail: true, required: true}, submittersOrganization: {type: 'string', required: true}, submitterIsExistingPartner: {type: 'string', required: true}, customersOrganization: {type: 'string', required: true}, customersName: {type: 'string', required: true}, - customersEmailAddress: {type: 'string', isEmail: true,}, + customersEmailAddress: {type: 'string', isEmail: true, required: true}, dealStage: {type: 'string', required: true}, expectedClose: {type: 'string', required: true}, @@ -30,14 +30,21 @@ module.exports = { exits: { success: {description: 'A deal registration email was successfully sent.'}, + invalidEmailDomain: { + description: 'This email address is on a denylist of domains and was not delivered.', + responseType: 'badRequest' + }, }, fn: async function (inputs) { + let emailDomain = inputs.submittersEmailAddress.split('@')[1]; + if(_.includes(sails.config.custom.bannedEmailDomainsForWebsiteSubmissions, emailDomain.toLowerCase())){ + throw 'invalidEmailDomain'; + } if(!sails.config.custom.dealRegistrationContactEmailAddress){ throw new Error('Missing config variable! Please set sails.config.custom.dealRegistrationContactEmailAddress to be the email address of the person who receives deal registration submissions.'); } - let emailTemplateData = _.omit(inputs, ['platforms', 'useCase']); diff --git a/website/api/controllers/deliver-partner-registration-submission.js b/website/api/controllers/deliver-partner-registration-submission.js index 00c33d0205..2548f770c4 100644 --- a/website/api/controllers/deliver-partner-registration-submission.js +++ b/website/api/controllers/deliver-partner-registration-submission.js @@ -12,7 +12,7 @@ module.exports = { submittersLastName: { type: 'string', required: true }, submittersEmailAddress: { type: 'string', required: true, isEmail: true }, submittersOrganization: { type: 'string', required: true }, - partnerType: { type: 'string', required: true }, + partnerType: { type: 'string', required: true, isIn: ['reseller', 'integrations'] }, partnerWebsite: { type: 'string', required: true }, partnerCountry: { type: 'string', required: true }, notes: {type: 'string', required: true }, @@ -26,10 +26,18 @@ module.exports = { exits: { success: {description: 'A partner registration email was successfully sent.'}, missingInput: {description: 'The form submission is missing a required input', responseType: 'badRequest'}, + invalidEmailDomain: { + description: 'This email address is on a denylist of domains and was not delivered.', + responseType: 'badRequest' + }, }, fn: async function (inputs) { + let emailDomain = inputs.submittersEmailAddress.split('@')[1]; + if(_.includes(sails.config.custom.bannedEmailDomainsForWebsiteSubmissions, emailDomain.toLowerCase())){ + throw 'invalidEmailDomain'; + } if(!sails.config.custom.dealRegistrationContactEmailAddress){ throw new Error('Missing config variable! Please set sails.config.custom.dealRegistrationContactEmailAddress to be the email address of the person who receives deal registration submissions.'); } @@ -53,6 +61,7 @@ module.exports = { 'integrations': 'Build integrations with Fleet' }; emailTemplateData.goal = partnerTypeFriendlyNameValuesByFormValue[inputs.partnerType]; + // Default to sending these to the configured fromEmailAddress let toEmail = sails.config.custom.fromEmailAddress; if(inputs.partnerType === 'reseller') { diff --git a/website/api/controllers/deliver-webinar-access-request.js b/website/api/controllers/deliver-webinar-access-request.js index 77ef44b214..7ac053b233 100644 --- a/website/api/controllers/deliver-webinar-access-request.js +++ b/website/api/controllers/deliver-webinar-access-request.js @@ -10,7 +10,7 @@ module.exports = { inputs: { firstName: {type: 'string', required: true }, lastName: {type: 'string', required: true }, - emailAddress: {type: 'string', required: true }, + emailAddress: {type: 'string', required: true, isEmail: true, }, webinarName: {type: 'string', required: true }, }, diff --git a/website/api/controllers/deliver-whitepaper-download-request.js b/website/api/controllers/deliver-whitepaper-download-request.js index a285d0d831..8a502d0697 100644 --- a/website/api/controllers/deliver-whitepaper-download-request.js +++ b/website/api/controllers/deliver-whitepaper-download-request.js @@ -10,7 +10,7 @@ module.exports = { inputs: { firstName: {type: 'string', required: true }, lastName: {type: 'string', required: true }, - emailAddress: {type: 'string', required: true }, + emailAddress: {type: 'string', required: true, isEmail: true }, whitepaperName: {type: 'string', required: true }, }, diff --git a/website/config/custom.js b/website/config/custom.js index bb2ef82a3d..460117c239 100644 --- a/website/config/custom.js +++ b/website/config/custom.js @@ -414,11 +414,13 @@ module.exports.custom = { 'yahoo.co.uk', 'yahoo.com', 'yahoo.com.ar', 'yahoo.com.au', 'yahoo.com.br', 'yahoo.com.mx', 'yahoo.com.sg', 'yahoo.de', 'yahoo.es', 'yahoo.fr', 'yahoo.in', 'yahoo.it', - 'yandex.ru', 'ymail.com', 'zoho.com', 'zonnet.nl' + 'yandex.ru', 'ymail.com', 'zoho.com', 'zonnet.nl', + 'email.tst', ], // For website signups & "Talk to us" form submissions: bannedEmailDomainsForWebsiteSubmissions: [ + 'email.tst', 'example.com', 'gmail.com', 'hotmail.ca', @@ -439,7 +441,7 @@ module.exports.custom = { 'yahoo.com', 'yahoo.co.uk', 'yandex.ru', - 'ymail.com' + 'ymail.com', ], // For contact form submissions. diff --git a/website/views/pages/partners.ejs b/website/views/pages/partners.ejs index 5b59f8c5a0..6c67936719 100644 --- a/website/views/pages/partners.ejs +++ b/website/views/pages/partners.ejs @@ -184,7 +184,7 @@
E.g., types of customers, deployments, or services you offer.
E.g., data integration, product integration, or co-marketing.
+ Please enter your work email address. +
+