Reveal host select column to team maintainer (#2397)

This commit is contained in:
gillespi314 2021-10-06 10:58:43 -05:00 committed by GitHub
parent 1b611012df
commit be2f08550d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 8 deletions

View file

@ -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 {

View file

@ -829,7 +829,11 @@ const ManageHostsPage = ({
className={`${baseClass}__invite-modal`}
>
<EditColumnsModal
columns={generateAvailableTableHeaders(config, currentUser)}
columns={generateAvailableTableHeaders(
config,
currentUser,
currentTeam
)}
hiddenColumns={hiddenColumns}
onSaveColumns={onSaveColumns}
onCancelColumns={onCancelColumns}
@ -1104,7 +1108,8 @@ const ManageHostsPage = ({
columns={generateVisibleTableColumns(
hiddenColumns,
config,
currentUser
currentUser,
currentTeam
)}
data={hosts}
isLoading={isHostsLoading}