From 9292b402029880f993c4852540559aea9e5a17a1 Mon Sep 17 00:00:00 2001 From: Toni <34042064+Desvelao@users.noreply.github.com> Date: Thu, 18 Feb 2021 18:26:45 +0100 Subject: [PATCH] Fix a non-stop error in Manage agents when the user has no permissions (#2976) * fix(frontend): Fix non-stop error in Manage agents when the user has not permissions - Manage the error loading the selected agent while loop - Added a prompt to th the required permission to the group detail view * fix(frontend): Added a PR to changelog --- CHANGELOG.md | 1 + .../groups/multiple-agent-selector.tsx | 26 ++++++++++++------- .../groups/actions-buttons-agents.js | 2 +- .../management/groups/group-detail.js | 11 +++++--- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cd450c26e..66cb8e4992 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to the Wazuh app project will be documented in this file. - Fix the statusCode error message [#2971](https://github.com/wazuh/wazuh-kibana-app/pull/2971) - Fix the SCA policy stats didn't refresh [#2973](https://github.com/wazuh/wazuh-kibana-app/pull/2973) - Fix some date fields format in FIM and SCA modules [#2975](https://github.com/wazuh/wazuh-kibana-app/pull/2975) +- Fix a non-stop error in Manage agents when the user has no permissions [#2976](https://github.com/wazuh/wazuh-kibana-app/pull/2976) - Can't edit empty rules and decoders files that already exist in the manager [#2978](https://github.com/wazuh/wazuh-kibana-app/pull/2978) ## Wazuh v4.1.0 - Kibana 7.10.0 , 7.10.2 - Revision 4101 diff --git a/public/components/management/groups/multiple-agent-selector.tsx b/public/components/management/groups/multiple-agent-selector.tsx index d02fcf473f..0c73835a04 100644 --- a/public/components/management/groups/multiple-agent-selector.tsx +++ b/public/components/management/groups/multiple-agent-selector.tsx @@ -50,22 +50,27 @@ export class MultipleAgentSelector extends Component { async componentDidMount() { this.setState({ load: true }); try { - while (!this.state.selectedAgents.loadedAll) { - await this.loadSelectedAgents(); - this.setState({ - selectedAgents: { - ...this.state.selectedAgents, - offset: this.state.selectedAgents.offset + 499, - } - }) - } + try{ + while (!this.state.selectedAgents.loadedAll) { + await this.loadSelectedAgents(); + this.setState({ + selectedAgents: { + ...this.state.selectedAgents, + offset: this.state.selectedAgents.offset + 499, + } + }); + } + }catch(error){} this.firstSelectedList = [...this.state.selectedAgents.data]; await this.loadAllAgents("", true); this.setState({ load: false }); } catch (error) { - ErrorHandler.handle(error, 'Error adding agents'); + ErrorHandler.handle(error, 'Error loading agents'); + this.setState({ + load: false + }); } } @@ -188,6 +193,7 @@ export class MultipleAgentSelector extends Component { } } catch (error) { ErrorHandler.handle(error, 'Error fetching group agents'); + throw error; } this.setState({ selectedAgents: { diff --git a/public/controllers/management/components/management/groups/actions-buttons-agents.js b/public/controllers/management/components/management/groups/actions-buttons-agents.js index dffb41d1e1..d19ddd5cbe 100644 --- a/public/controllers/management/components/management/groups/actions-buttons-agents.js +++ b/public/controllers/management/components/management/groups/actions-buttons-agents.js @@ -89,8 +89,8 @@ class WzGroupsActionButtonsAgents extends Component { showManageAgents() { const { itemDetail } = this.props.state; - this.props.updateShowAddAgents(true); this.props.groupsProps.showAddingAgents(true, itemDetail); + this.props.updateShowAddAgents(true); } closePopover() { diff --git a/public/controllers/management/components/management/groups/group-detail.js b/public/controllers/management/components/management/groups/group-detail.js index d36fd8499c..99ca3e3fc9 100644 --- a/public/controllers/management/components/management/groups/group-detail.js +++ b/public/controllers/management/components/management/groups/group-detail.js @@ -25,6 +25,8 @@ import WzGroupsActionButtonsAgents from './actions-buttons-agents'; import WzGroupsActionButtonsFiles from './actions-buttons-files'; import WzGroupAgentsTable from './group-agents-table'; import WzGroupFilesTable from './group-files-table'; +import { withUserAuthorizationPrompt } from '../../../../../components/common/hocs'; +import { compose } from 'redux'; class WzGroupDetail extends Component { constructor(props) { @@ -184,7 +186,10 @@ const mapDispatchToProps = dispatch => { }; }; -export default connect( - mapStateToProps, - mapDispatchToProps +export default compose( + connect( + mapStateToProps, + mapDispatchToProps + ), + withUserAuthorizationPrompt((props) => [{action: 'group:read', resource: `group:id:${props.state.itemDetail.name}`}]), )(WzGroupDetail);