diff --git a/src/Components/SmartComponents/CVEs/CVEs.js b/src/Components/SmartComponents/CVEs/CVEs.js index 11621befe..735358533 100644 --- a/src/Components/SmartComponents/CVEs/CVEs.js +++ b/src/Components/SmartComponents/CVEs/CVEs.js @@ -35,7 +35,13 @@ export const CVEs = ({ rbac }) => { const [CveBusinessRiskModal, setBusinessRiskModal] = useState(() => () => null); const [isFirstLoad, setFirstLoad] = useState(true); - const [[canEditStatusOrBusinessRisk, canEditPairStatus, canExport, canReadVulnerabilityResults], isRbacLoading] = rbac; + const [[ + canEditStatusOrBusinessRisk, + canEditPairStatus, + canExport, + canReadVulnerabilityResults, + canToggleCvesWithoutErrata + ], isRbacLoading] = rbac; const cveList = useSelector( ({ CVEsStore }) => CVEsStore.cveList @@ -132,7 +138,7 @@ export const CVEs = ({ rbac }) => { if (!cves.errors) { return ( - isRbacLoading ? : canReadVulnerabilityResults ? + isRbacLoading ? : canReadVulnerabilityResults ? ( { } }} > - - + + - { ColumnManagementModal } + {ColumnManagementModal} @@ -175,7 +182,7 @@ export const CVEs = ({ rbac }) => { ) : ); } else { - return ; + return ; } }; @@ -188,7 +195,8 @@ const CVEsWithRbac = () => { PERMISSIONS.setCveStatusAndBusinessRisk, PERMISSIONS.setPairStatus, PERMISSIONS.basicReporting, - PERMISSIONS.readVulnerabilityResults + PERMISSIONS.readVulnerabilityResults, + PERMISSIONS.toggleCvesWithoutErrata ]); return ; diff --git a/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js b/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js index df173d9f5..7595680cb 100644 --- a/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js +++ b/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js @@ -34,7 +34,7 @@ import { import { fetchCvesIds } from '../../../Store/Actions/Actions'; import { setCvesWithoutErrata } from '../../../Helpers/APIHelper'; -const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, canExport, intl }) => { +const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, canExport, canToggleCvesWithoutErrata, intl }) => { const [exportPDF, setExportPDF] = useState(false); const onExpandAllClick = () => { @@ -94,16 +94,17 @@ const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, can label: intl.formatMessage(messages.columnManagementModalTitle), onClick: () => methods.setColumnManagementModalOpen(true) }, - cves?.meta?.cves_without_errata ? - { - label: intl.formatMessage(messages.hideCvesWithoutAdvisories), - onClick: () => setCvesWithoutErrata(false).then(() => methods.apply({ page: 1 })) - } : - { - label: intl.formatMessage(messages.showCvesWithoutAdvisories), - onClick: () => setCvesWithoutErrata(true).then(() => methods.apply({ page: 1 })) - } - + ...canToggleCvesWithoutErrata ? [( + cves?.meta?.cves_without_errata ? + { + label: intl.formatMessage(messages.hideCvesWithoutAdvisories), + onClick: () => setCvesWithoutErrata(false).then(() => methods.apply({ page: 1 })) + } : + { + label: intl.formatMessage(messages.showCvesWithoutAdvisories), + onClick: () => setCvesWithoutErrata(true).then(() => methods.apply({ page: 1 })) + } + )] : [] ]; return ( @@ -183,7 +184,8 @@ CVEsTableToolbarWithContext.propTypes = { context: propTypes.object, intl: propTypes.object, canEditStatusOrBusinessRisk: propTypes.bool, - canExport: propTypes.bool + canExport: propTypes.bool, + canToggleCvesWithoutErrata: propTypes.bool }; CVEsTableToolbarWithContext.defaultProps = { diff --git a/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap b/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap index 2a4f87e5b..08cc34973 100644 --- a/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap +++ b/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap @@ -546,10 +546,6 @@ exports[`CVEs Should render without props 1`] = ` "label": "Manage columns", "onClick": [Function], }, - { - "label": "Show CVEs without Advisories", - "onClick": [Function], - }, ], "dropdownProps": { "ouiaId": "toolbar-actions", @@ -2307,10 +2303,6 @@ exports[`CVEs Should render without props 1`] = ` "label": "Manage columns", "onClick": [Function], }, - { - "label": "Show CVEs without Advisories", - "onClick": [Function], - }, ] } dropdownProps={ @@ -2685,12 +2677,6 @@ exports[`CVEs Should render without props 1`] = ` > Manage columns , - - Show CVEs without Advisories - , ] } isOpen={false} @@ -2729,12 +2715,6 @@ exports[`CVEs Should render without props 1`] = ` > Manage columns , - - Show CVEs without Advisories - , ] } isFlipEnabled={true} diff --git a/src/Components/SmartComponents/CVEs/__snapshots__/CVEsTableToolbar.test.js.snap b/src/Components/SmartComponents/CVEs/__snapshots__/CVEsTableToolbar.test.js.snap index e4ca58af2..2b90f9900 100644 --- a/src/Components/SmartComponents/CVEs/__snapshots__/CVEsTableToolbar.test.js.snap +++ b/src/Components/SmartComponents/CVEs/__snapshots__/CVEsTableToolbar.test.js.snap @@ -205,10 +205,6 @@ exports[`CVEsTableToolbar Should render without errors 1`] = ` "label": "Manage columns", "onClick": [Function], }, - { - "label": "Show CVEs without Advisories", - "onClick": [Function], - }, ], "dropdownProps": { "ouiaId": "toolbar-actions", @@ -1983,10 +1979,6 @@ exports[`CVEsTableToolbar Should render without errors 1`] = ` "label": "Manage columns", "onClick": [Function], }, - { - "label": "Show CVEs without Advisories", - "onClick": [Function], - }, ] } dropdownProps={ @@ -2361,12 +2353,6 @@ exports[`CVEsTableToolbar Should render without errors 1`] = ` > Manage columns , - - Show CVEs without Advisories - , ] } isOpen={false} @@ -2405,12 +2391,6 @@ exports[`CVEsTableToolbar Should render without errors 1`] = ` > Manage columns , - - Show CVEs without Advisories - , ] } isFlipEnabled={true} diff --git a/src/Helpers/constants.js b/src/Helpers/constants.js index f5dd64e77..d87ce4174 100644 --- a/src/Helpers/constants.js +++ b/src/Helpers/constants.js @@ -932,5 +932,6 @@ export const PERMISSIONS = { readExcluded: 'vulnerability:system.opt_out:read', setExcludedIncluded: 'vulnerability:system.opt_out:write', readVulnerabilityResults: 'vulnerability:vulnerability_results:read', + toggleCvesWithoutErrata: 'vulnerability:toggle_cves_without_errata:write', readHosts: 'inventory:hosts:read' };