Skip to content

Commit

Permalink
Add advisory available filter to CVE list page
Browse files Browse the repository at this point in the history
  • Loading branch information
leSamo committed Jul 31, 2023
1 parent 11f7590 commit 7707261
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
17 changes: 14 additions & 3 deletions src/Components/SmartComponents/CVEs/CVEsTableToolbar.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint-disable camelcase */
import React, { useState } from 'react';
import React, { useEffect, useState } from 'react';
import propTypes from 'prop-types';
import { injectIntl } from 'react-intl';
import messages from '../../../Messages';
Expand All @@ -15,6 +15,7 @@ import securityRuleFilter from '../../PresentationalComponents/Filters/PrimaryTo
import businessRiskFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/BusinessRiskFilter';
import knownExploitFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/KnownExploitFilter';
import statusFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/StatusFilter';
import advisoryAvailabilityFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/AdvisoryAvailabilityFilter';
import { kebabItemDownloadPDF } from '../../PresentationalComponents/Kebab/KebabItems';
import DownloadCVEsReport from '../Reports/DownloadCVEsReport';
import {
Expand Down Expand Up @@ -45,9 +46,18 @@ const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, can
};

const { cves, params, methods, selectedCves, isAllExpanded } = context;
const { isLoading } = cves;
const { filter } = params;
const selectedCvesCount = selectedCves && selectedCves.length;

const [showCvesWithoutErrata, setShowCvesWithoutErrata] = useState(false);

useEffect(() => {
if (!isLoading) {
setShowCvesWithoutErrata(cves?.meta?.cves_without_errata);
}
}, [cves?.meta?.cves_without_errata, isLoading]);

const selectOptions = selectAllCheckbox({
selectedItems: selectedCves,
selectorHandler: methods.selectCves,
Expand Down Expand Up @@ -95,7 +105,7 @@ const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, can
onClick: () => methods.setColumnManagementModalOpen(true)
},
...canToggleCvesWithoutErrata ? [(
cves?.meta?.cves_without_errata ?
showCvesWithoutErrata ?
{
label: intl.formatMessage(messages.hideCvesWithoutAdvisories),
onClick: () => setCvesWithoutErrata(false).then(() => methods.apply({ page: 1 }))
Expand Down Expand Up @@ -146,7 +156,8 @@ const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, can
businessRiskFilter(methods.apply, params),
affectingFilter(methods.apply, params),
publishDateFilter(methods.apply, params),
statusFilter(methods.apply, params)
statusFilter(methods.apply, params),
...showCvesWithoutErrata ? [advisoryAvailabilityFilter(methods.apply, params)] : []
]
}}
activeFiltersConfig={{
Expand Down
6 changes: 4 additions & 2 deletions src/Helpers/APIHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ export function getCveListByAccount(apiProps) {
'report',
'advanced_report',
'ansible',
'mssql'
'mssql',
'advisory_available'
];
let parameterArray = constructParameters(apiProps, parameterNames);
let result = api.getCveList(...parameterArray);
Expand All @@ -95,7 +96,8 @@ export function getCveIdsList(apiProps) {
...defaultParams,
...cveParams,
'ansible',
'mssql'
'mssql',
'advisory_available'
];

let parameterArray = constructParameters(apiProps, parameterNames);
Expand Down
7 changes: 6 additions & 1 deletion src/Helpers/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,10 @@ export const FILTERS = {
remediation: {
title: intl.formatMessage(messages.remediationFilterLabel),
items: REMEDIATION_OPTIONS
},
advisory_available: {
title: intl.formatMessage(messages.advisory),
items: ADVISORY_AVAILABILITY_FILTER_OPTIONS
}
};

Expand Down Expand Up @@ -815,7 +819,8 @@ export const CVES_FILTER_PARAMS = [
'affecting',
'show_advisories',
'advisory',
'known_exploit'
'known_exploit',
'advisory_available'
];

export const CVES_ALLOWED_PARAMS = [
Expand Down

0 comments on commit 7707261

Please sign in to comment.