fleet/frontend/components/forms/admin/AppConfigForm/validate.js
Austin Burnett 59efb495ca Add automatic host expiration capability (#2117)
When configured, this feature will delete hosts that have not checked in after the specified number of days.

Closes #1860.
2019-10-16 16:35:17 -07:00

77 lines
1.8 KiB
JavaScript

import { size } from 'lodash';
export default (formData) => {
const errors = {};
const {
authentication_type: authType,
kolide_server_url: kolideServerUrl,
org_name: orgName,
enable_smtp: enableSMTP,
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,
host_expiry_enabled: hostExpiryEnabled,
host_expiry_window: hostExpiryWindow = 0,
} = 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 = 'Fleet Server URL must be present';
}
if (!orgName) {
errors.org_name = 'Organization Name must be present';
}
if (enableSMTP) {
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';
}
}
}
if (hostExpiryEnabled) {
if (isNaN(hostExpiryWindow) || Number(hostExpiryWindow) <= 0) {
errors.host_expiry_window = 'Host Expiry Window must be a positive number';
}
}
const valid = !size(errors);
return { valid, errors };
};