From be2f08550d01a93cdbba10a5a492e118182cfd71 Mon Sep 17 00:00:00 2001 From: gillespi314 <73313222+gillespi314@users.noreply.github.com> Date: Wed, 6 Oct 2021 10:58:43 -0500 Subject: [PATCH] Reveal host select column to team maintainer (#2397) --- .../hosts/ManageHostsPage/HostTableConfig.tsx | 18 ++++++++++++------ .../hosts/ManageHostsPage/ManageHostsPage.tsx | 9 +++++++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/frontend/pages/hosts/ManageHostsPage/HostTableConfig.tsx b/frontend/pages/hosts/ManageHostsPage/HostTableConfig.tsx index e5db50c4d8..818f448277 100644 --- a/frontend/pages/hosts/ManageHostsPage/HostTableConfig.tsx +++ b/frontend/pages/hosts/ManageHostsPage/HostTableConfig.tsx @@ -17,6 +17,7 @@ import { hostTeamName, } from "fleet/helpers"; import { IConfig } from "interfaces/config"; +import { ITeam } from "interfaces/team"; import { IUser } from "interfaces/user"; import PATHS from "router/paths"; import permissionUtils from "utilities/permissions"; @@ -282,7 +283,8 @@ const defaultHiddenColumns = [ */ const generateAvailableTableHeaders = ( config: IConfig, - currentUser: IUser + currentUser: IUser, + currentTeam: ITeam | undefined ): IHostDataColumn[] => { return allHostTableHeaders.reduce( (columns: IHostDataColumn[], currentColumn: IHostDataColumn) => { @@ -305,7 +307,8 @@ const generateAvailableTableHeaders = ( } else if ( // In premium tier, we want to check user role to enable/disable select column !permissionUtils.isGlobalAdmin(currentUser) && - !permissionUtils.isGlobalMaintainer(currentUser) + !permissionUtils.isGlobalMaintainer(currentUser) && + !permissionUtils.isTeamMaintainer(currentUser, currentTeam?.id || null) ) { if (currentColumn.id === "selection") { return columns; @@ -326,12 +329,15 @@ const generateAvailableTableHeaders = ( const generateVisibleTableColumns = ( hiddenColumns: string[], config: IConfig, - currentUser: IUser + currentUser: IUser, + currentTeam: ITeam | undefined ): IHostDataColumn[] => { // remove columns set as hidden by the user. - return generateAvailableTableHeaders(config, currentUser).filter((column) => { - return !hiddenColumns.includes(column.accessor as string); - }); + return generateAvailableTableHeaders(config, currentUser, currentTeam).filter( + (column) => { + return !hiddenColumns.includes(column.accessor as string); + } + ); }; export { diff --git a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx index 474d64d3da..bc504e313e 100644 --- a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx +++ b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx @@ -829,7 +829,11 @@ const ManageHostsPage = ({ className={`${baseClass}__invite-modal`} >