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'
};