Skip to content

Commit

Permalink
[SECURITY_SOLUTION][ENDPOINT] Fix trusted apps create form displaying…
Browse files Browse the repository at this point in the history
… empty conditions area if OS is changed (#77808)

* Fix incorrect filtering of conditions when os changes
* improve condition builder empty message

Co-authored-by: Elastic Machine <[email protected]>
  • Loading branch information
paul-tavares and elasticmachine authored Sep 21, 2020
1 parent 32a7b9f commit d0c1c93
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
} from './trusted_apps_list_page_state';
import {
Immutable,
MacosLinuxConditionEntry,
NewTrustedApp,
WindowsConditionEntry,
} from '../../../../../common/endpoint/types';
Expand Down Expand Up @@ -51,5 +52,11 @@ export const isWindowsTrustedAppCondition = (condition: {
return condition.field === 'process.code_signature' || true;
};

export const isMacosLinuxTrustedAppCondition = (condition: {
field: string;
}): condition is MacosLinuxConditionEntry => {
return condition.field !== 'process.code_signature' || true;
};

export const isTrustedAppSupportedOs = (os: string): os is NewTrustedApp['os'] =>
TRUSTED_APPS_SUPPORTED_OS_TYPES.includes(os);
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
import { LogicalConditionBuilderProps } from './logical_condition/logical_condition_builder';
import { OS_TITLES } from '../constants';
import {
isMacosLinuxTrustedAppCondition,
isTrustedAppSupportedOs,
isWindowsTrustedApp,
isWindowsTrustedAppCondition,
Expand Down Expand Up @@ -123,7 +124,7 @@ export const CreateTrustedAppForm = memo<CreateTrustedAppFormProps>(
return {
...prevState,
entries: [
...prevState.entries.filter((entry) => !isWindowsTrustedAppCondition(entry)),
...prevState.entries.filter((entry) => isMacosLinuxTrustedAppCondition(entry)),
generateNewEntry(),
] as MacosLinuxConditionEntry[],
};
Expand Down Expand Up @@ -154,10 +155,15 @@ export const CreateTrustedAppForm = memo<CreateTrustedAppFormProps>(
};
if (!isWindowsTrustedApp(updatedState)) {
updatedState.entries.push(
...(prevState.entries.filter(
(entry) => !isWindowsTrustedAppCondition(entry)
...(prevState.entries.filter((entry) =>
isMacosLinuxTrustedAppCondition(entry)
) as MacosLinuxConditionEntry[])
);
if (updatedState.entries.length === 0) {
updatedState.entries.push(generateNewEntry() as MacosLinuxConditionEntry);
}
} else {
updatedState.entries.push(...prevState.entries);
}
return updatedState;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*/

import React, { memo, useCallback } from 'react';
import { EuiButton, CommonProps, EuiText, EuiSpacer } from '@elastic/eui';
import { EuiButton, CommonProps, EuiText, EuiSpacer, EuiPanel } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { ConditionGroup, ConditionGroupProps } from './components/condition_group';

Expand Down Expand Up @@ -75,14 +75,14 @@ LogicalConditionBuilder.displayName = 'LogicalConditionBuilder';
// FIXME:PT need to style this better.
const NoEntries = memo(() => {
return (
<div>
<EuiText>
<EuiPanel paddingSize="l">
<EuiText textAlign="center" size="s" color="subdued">
<FormattedMessage
id="xpack.securitySolution.trustedapps.logicalConditionBuilder.noEntries"
defaultMessage="No entries"
defaultMessage="No conditions defined"
/>
</EuiText>
</div>
</EuiPanel>
);
});

Expand Down

0 comments on commit d0c1c93

Please sign in to comment.