diff --git a/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality/table/columns.tsx b/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality/table/columns.tsx index 41043435aa34a..228c3ccfa4956 100644 --- a/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality/table/columns.tsx +++ b/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality/table/columns.tsx @@ -351,7 +351,10 @@ export const getDatasetQualityTableColumns = ({ field: 'failedDocs.percentage', sortable: true, render: (_: any, dataStreamStat: DataStreamStat) => { - if (!dataStreamStat.hasFailureStore) { + if ( + !dataStreamStat.hasFailureStore && + dataStreamStat.userPrivileges?.canReadFailureStore + ) { const FailureStoreHoverLink = () => { const [hovered, setHovered] = React.useState(false); const locator = urlService.locators.get('INDEX_MANAGEMENT_LOCATOR_ID'); diff --git a/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality_details/overview/quality_summary_cards/index.tsx b/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality_details/overview/quality_summary_cards/index.tsx index 9ed221c3b9f12..03aeed82e564c 100644 --- a/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality_details/overview/quality_summary_cards/index.tsx +++ b/x-pack/platform/plugins/shared/dataset_quality/public/components/dataset_quality_details/overview/quality_summary_cards/index.tsx @@ -94,7 +94,7 @@ export default function QualitySummaryCards({ /> - {!dataStreamSettingsLoading && !hasFailureStore && canUserReadFailureStore ? ( + {!dataStreamSettingsLoading && !(hasFailureStore && canUserReadFailureStore) ? ( - {i18n.translate('xpack.datasetQuality.enableFailureStore', { - defaultMessage: 'Enable failure store', - })} - + canUserReadFailureStore && ( + + {i18n.translate('xpack.datasetQuality.enableFailureStore', { + defaultMessage: 'Enable failure store', + })} + + ) } /> ) : ( diff --git a/x-pack/platform/plugins/shared/dataset_quality/public/hooks/use_dataset_quality_state.ts b/x-pack/platform/plugins/shared/dataset_quality/public/hooks/use_dataset_quality_state.ts index 6762e6b35f71c..5912e346b7841 100644 --- a/x-pack/platform/plugins/shared/dataset_quality/public/hooks/use_dataset_quality_state.ts +++ b/x-pack/platform/plugins/shared/dataset_quality/public/hooks/use_dataset_quality_state.ts @@ -11,8 +11,7 @@ import { useDatasetQualityContext } from '../components/dataset_quality/context' export const useDatasetQualityState = () => { const { service } = useDatasetQualityContext(); - const { datasetUserPrivileges, dataStreamStats } = - useSelector(service, (state) => state.context) ?? {}; + const { datasetUserPrivileges } = useSelector(service, (state) => state.context) ?? {}; const statsLoading = useSelector( service, @@ -20,7 +19,9 @@ export const useDatasetQualityState = () => { ); const canUserReadFailureStore = Boolean( - dataStreamStats?.some((ds) => ds.userPrivileges.canReadFailureStore) + Object.values(datasetUserPrivileges?.datasetsPrivilages ?? {})?.some( + (privilege) => privilege.canReadFailureStore + ) ); const canUserMonitorAnyDataset = Boolean(