From 553fc3916e4dd0409aa381bdbece94288feac949 Mon Sep 17 00:00:00 2001 From: AWSHurneyt Date: Thu, 14 Mar 2024 16:25:03 -0700 Subject: [PATCH] Fixed a bug that would clear role selections when editing a monitor. Updated help text for role selection dropdown menu. Signed-off-by: AWSHurneyt --- .../containers/DefineMonitor/DefineMonitor.js | 7 ++++- .../containers/MonitorRoles/MonitorRoles.js | 31 ++++++++++++++++--- .../MonitorSecurity/MonitorSecurity.js | 2 +- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/public/pages/CreateMonitor/containers/DefineMonitor/DefineMonitor.js b/public/pages/CreateMonitor/containers/DefineMonitor/DefineMonitor.js index 51561bde5..0a5436cdb 100644 --- a/public/pages/CreateMonitor/containers/DefineMonitor/DefineMonitor.js +++ b/public/pages/CreateMonitor/containers/DefineMonitor/DefineMonitor.js @@ -706,7 +706,12 @@ class DefineMonitor extends Component { )} {filterByBackendRolesEnabled ? (
- +
) : null} diff --git a/public/pages/CreateMonitor/containers/MonitorRoles/MonitorRoles.js b/public/pages/CreateMonitor/containers/MonitorRoles/MonitorRoles.js index e34c3ff7b..cb91872a4 100644 --- a/public/pages/CreateMonitor/containers/MonitorRoles/MonitorRoles.js +++ b/public/pages/CreateMonitor/containers/MonitorRoles/MonitorRoles.js @@ -6,10 +6,13 @@ import React from 'react'; import PropTypes from 'prop-types'; import _ from 'lodash'; -import { EuiHealth, EuiHighlight } from '@elastic/eui'; - +import { EuiLink, EuiText } from '@elastic/eui'; import { FormikComboBox } from '../../../../components/FormControls'; import { createReasonableWait } from '../MonitorIndex/utils/helpers'; +import { FORMIK_INITIAL_VALUES } from '../CreateMonitor/utils/constants'; + +const RBAC_DOCUMENTATION = + 'https://opensearch.org/docs/latest/observing-your-data/alerting/security/'; const propTypes = { httpClient: PropTypes.object.isRequired, @@ -19,11 +22,16 @@ class MonitorRoles extends React.Component { constructor(props) { super(props); + // Retrieve, and parse roles when editing a monitor + const roles = _.get(props, 'values.roles', FORMIK_INITIAL_VALUES.roles).map((role) => ({ + label: role, + })); + this.lastQuery = null; this.state = { isLoading: false, showingRoleQueryErrors: false, - options: [], + options: roles, roles: [], }; @@ -93,8 +101,20 @@ class MonitorRoles extends React.Component { name="roles" formRow rowProps={{ - label: 'Backend roles', - helpText: 'You can optionally assign one or more backend roles to the monitor', + label: ( +
+ + Backend roles + - optional + + + Specify role-based access control (RBAC) backend roles.{' '} + + Learn more + + +
+ ), style: { paddingLeft: '10px' }, }} inputProps={{ @@ -111,6 +131,7 @@ class MonitorRoles extends React.Component { onSearchChange: this.onSearchChange, isClearable: true, singleSelection: false, + selectedOptions: roles, 'data-test-subj': 'rolesComboBox', }} /> diff --git a/public/pages/CreateMonitor/containers/MonitorSecurity/MonitorSecurity.js b/public/pages/CreateMonitor/containers/MonitorSecurity/MonitorSecurity.js index 949d71768..0ae247116 100644 --- a/public/pages/CreateMonitor/containers/MonitorSecurity/MonitorSecurity.js +++ b/public/pages/CreateMonitor/containers/MonitorSecurity/MonitorSecurity.js @@ -30,7 +30,7 @@ class MonitorSecurity extends Component { const { isMinimal } = this.props; const monitorRoleDisplay = ( <> - + );