fleet/frontend/components/forms/admin/AppConfigForm/validate.js

79 lines
1.8 KiB
JavaScript
Raw Normal View History

import { size } from "lodash";
export default (formData) => {
const errors = {};
const {
authentication_type: authType,
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.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 };
};