import { size, some } from 'lodash'; import APP_CONSTANTS from 'app_constants'; const { APP_SETTINGS } = APP_CONSTANTS; export default (formData) => { const errors = {}; const { authentication_type: authType, kolide_server_url: kolideServerUrl, org_name: orgName, password: smtpPassword, sender_address: smtpSenderAddress, server: smtpServer, port: smtpServerPort, user_name: smtpUserName, enable_sso: enableSSO, metadata, metadata_url: metadataURL, entity_id: entityID, idp_name: idpName, } = formData; if (enableSSO) { if (!metadata && !metadataURL) { errors.metadata_url = 'Metadata URL must be present'; } if (!entityID) { errors.entity_id = 'Entity ID must be present'; } if (!idpName) { errors.idp_name = 'Identity Provider Name must be present'; } } if (!kolideServerUrl) { errors.kolide_server_url = 'Kolide Server URL must be present'; } if (!orgName) { errors.org_name = 'Organization Name must be present'; } if (some([smtpSenderAddress, smtpServer, smtpUserName]) || (smtpPassword && smtpPassword !== APP_SETTINGS.FAKE_PASSWORD) || (smtpServerPort !== APP_SETTINGS.DEFAULT_SMTP_PORT)) { if (!smtpSenderAddress) { errors.sender_address = 'SMTP Sender Address must be present'; } if (!smtpServer) { errors.server = 'SMTP Server must be present'; } if (!smtpServerPort) { errors.server = 'SMTP Server Port must be present'; } if (authType !== 'authtype_none') { if (!smtpUserName) { errors.user_name = 'SMTP Username must be present'; } if (!smtpPassword) { errors.password = 'SMTP Password must be present'; } } } const valid = !size(errors); return { valid, errors }; };