mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Fix user details risk tab shows when FF is disabled (#132918)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
165be7d309
commit
42198ab481
3 changed files with 44 additions and 5 deletions
|
@ -52,6 +52,7 @@ import { UsersType } from '../../store/model';
|
|||
import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions';
|
||||
import { useMlCapabilities } from '../../../common/components/ml/hooks/use_ml_capabilities';
|
||||
import { LandingPageComponent } from '../../../common/components/landing_page';
|
||||
import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
|
||||
const QUERY_ID = 'UsersDetailsQueryId';
|
||||
|
||||
const UsersDetailsComponent: React.FC<UsersDetailsProps> = ({
|
||||
|
@ -59,6 +60,7 @@ const UsersDetailsComponent: React.FC<UsersDetailsProps> = ({
|
|||
usersDetailsPagePath,
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
const riskyUsersFeatureEnabled = useIsExperimentalFeatureEnabled('riskyUsersEnabled');
|
||||
const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []);
|
||||
const graphEventId = useShallowEqualSelector(
|
||||
(state) => (getTimeline(state, TimelineId.hostsPageEvents) ?? timelineDefaults).graphEventId
|
||||
|
@ -170,7 +172,11 @@ const UsersDetailsComponent: React.FC<UsersDetailsProps> = ({
|
|||
<EuiSpacer />
|
||||
|
||||
<SecuritySolutionTabNavigation
|
||||
navTabs={navTabsUsersDetails(detailName, hasMlUserPermissions(capabilities))}
|
||||
navTabs={navTabsUsersDetails(
|
||||
detailName,
|
||||
hasMlUserPermissions(capabilities),
|
||||
riskyUsersFeatureEnabled
|
||||
)}
|
||||
/>
|
||||
|
||||
<EuiSpacer />
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
import { UsersTableType } from '../../store/model';
|
||||
import { navTabsUsersDetails } from './nav_tabs';
|
||||
|
||||
describe('navTabsUsersDetails', () => {
|
||||
test('it should not display anomalies tab if user has no ml permission', () => {
|
||||
const tabs = navTabsUsersDetails('username', false, true);
|
||||
|
||||
expect(tabs).not.toHaveProperty(UsersTableType.anomalies);
|
||||
expect(tabs).toHaveProperty(UsersTableType.risk);
|
||||
});
|
||||
|
||||
test('it should not display risk tab if isRiskyUserEnabled disabled', () => {
|
||||
const tabs = navTabsUsersDetails('username', true, false);
|
||||
// expect(tabs).toHaveProperty(UsersTableType.allUsers);
|
||||
expect(tabs).toHaveProperty(UsersTableType.anomalies);
|
||||
expect(tabs).not.toHaveProperty(UsersTableType.risk);
|
||||
});
|
||||
});
|
|
@ -16,8 +16,11 @@ const getTabsOnUsersDetailsUrl = (userName: string, tabName: UsersTableType) =>
|
|||
|
||||
export const navTabsUsersDetails = (
|
||||
userName: string,
|
||||
hasMlUserPermissions: boolean
|
||||
hasMlUserPermissions: boolean,
|
||||
isRiskyUserEnabled: boolean
|
||||
): UsersDetailsNavTab => {
|
||||
const hiddenTabs = [];
|
||||
|
||||
const userDetailsNavTabs = {
|
||||
[UsersTableType.authentications]: {
|
||||
id: UsersTableType.authentications,
|
||||
|
@ -51,7 +54,13 @@ export const navTabsUsersDetails = (
|
|||
},
|
||||
};
|
||||
|
||||
return hasMlUserPermissions
|
||||
? userDetailsNavTabs
|
||||
: omit([UsersTableType.anomalies], userDetailsNavTabs);
|
||||
if (!hasMlUserPermissions) {
|
||||
hiddenTabs.push(UsersTableType.anomalies);
|
||||
}
|
||||
|
||||
if (!isRiskyUserEnabled) {
|
||||
hiddenTabs.push(UsersTableType.risk);
|
||||
}
|
||||
|
||||
return omit(hiddenTabs, userDetailsNavTabs);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue