From 6e5a45eb60b3b888ae906e03c6a1a8f489af2ac4 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Wed, 9 Jun 2021 19:05:14 -0400 Subject: [PATCH] Host Details Page: Hide action buttons for observers only (#1027) --- .../pages/hosts/HostDetailsPage/HostDetailsPage.jsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/pages/hosts/HostDetailsPage/HostDetailsPage.jsx b/frontend/pages/hosts/HostDetailsPage/HostDetailsPage.jsx index c0ac1db298..7d188b61bb 100644 --- a/frontend/pages/hosts/HostDetailsPage/HostDetailsPage.jsx +++ b/frontend/pages/hosts/HostDetailsPage/HostDetailsPage.jsx @@ -53,6 +53,7 @@ export class HostDetailsPage extends Component { queries: PropTypes.arrayOf(queryInterface), queryErrors: PropTypes.object, // eslint-disable-line react/forbid-prop-types isBasicTier: PropTypes.bool, + isOnlyObserver: PropTypes.bool, }; static defaultProps = { @@ -195,11 +196,16 @@ export class HostDetailsPage extends Component { renderActionButtons = () => { const { toggleDeleteHostModal, toggleQueryHostModal } = this; - const { host } = this.props; + const { host, isOnlyObserver } = this.props; const isOnline = host.status === "online"; const isOffline = host.status === "offline"; + // Hide action buttons for global and team only observers + if (isOnlyObserver) { + return null; + } + return (
@@ -640,7 +646,9 @@ const mapStateToProps = (state, ownProps) => { const host = entityGetter(state).get("hosts").findBy({ id: hostID }); const { loading: isLoadingHost } = state.entities.hosts; const config = state.app.config; + const currentUser = state.auth.user; const isBasicTier = permissionUtils.isBasicTier(config); + const isOnlyObserver = permissionUtils.isOnlyObserver(currentUser); return { host, @@ -649,6 +657,7 @@ const mapStateToProps = (state, ownProps) => { queries, queryErrors, isBasicTier, + isOnlyObserver, }; };