mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
UI - Restore packs logic to host details (#13031)
## Addresses ##13032 ### Restore packs logic per product decision <img width="849" alt="Screenshot 2023-07-28 at 12 12 48 PM" src="https://github.com/fleetdm/fleet/assets/61553566/93603522-18c0-4d40-8e63-5d516e1345f2"> - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
This commit is contained in:
parent
40e8f83829
commit
37203dbad2
1 changed files with 28 additions and 0 deletions
|
|
@ -18,12 +18,14 @@ import {
|
|||
IHost,
|
||||
IDeviceMappingResponse,
|
||||
IMacadminsResponse,
|
||||
IPackStats,
|
||||
IHostResponse,
|
||||
IHostMdmData,
|
||||
IPackStats,
|
||||
} from "interfaces/host";
|
||||
import { ILabel } from "interfaces/label";
|
||||
import { IHostPolicy } from "interfaces/policy";
|
||||
import { IQueryStats } from "interfaces/query_stats";
|
||||
import { ISoftware } from "interfaces/software";
|
||||
import { ITeam } from "interfaces/team";
|
||||
import {
|
||||
|
|
@ -40,6 +42,7 @@ import InfoBanner from "components/InfoBanner";
|
|||
import BackLink from "components/BackLink";
|
||||
|
||||
import { normalizeEmptyValues, wrapFleetHelper } from "utilities/helpers";
|
||||
import permissions from "utilities/permissions";
|
||||
|
||||
import HostSummaryCard from "../cards/HostSummary";
|
||||
import AboutCard from "../cards/About";
|
||||
|
|
@ -50,6 +53,7 @@ import SoftwareCard from "../cards/Software";
|
|||
import UsersCard from "../cards/Users";
|
||||
import PoliciesCard from "../cards/Policies";
|
||||
import ScheduleCard from "../cards/Schedule";
|
||||
import PacksCard from "../cards/Packs";
|
||||
import PolicyDetailsModal from "../cards/Policies/HostPoliciesTable/PolicyDetailsModal";
|
||||
import OSPolicyModal from "./modals/OSPolicyModal";
|
||||
import UnenrollMdmModal from "./modals/UnenrollMdmModal";
|
||||
|
|
@ -115,7 +119,9 @@ const HostDetailsPage = ({
|
|||
|
||||
const {
|
||||
config,
|
||||
currentUser,
|
||||
isGlobalAdmin = false,
|
||||
isGlobalObserver,
|
||||
isPremiumTier = false,
|
||||
isSandboxMode,
|
||||
isOnlyObserver,
|
||||
|
|
@ -152,6 +158,7 @@ const HostDetailsPage = ({
|
|||
const [refetchStartTime, setRefetchStartTime] = useState<number | null>(null);
|
||||
const [showRefetchSpinner, setShowRefetchSpinner] = useState(false);
|
||||
const [schedule, setSchedule] = useState<IQueryStats[]>();
|
||||
const [packsState, setPacksState] = useState<IPackStats[]>();
|
||||
const [hostSoftware, setHostSoftware] = useState<ISoftware[]>([]);
|
||||
const [usersState, setUsersState] = useState<{ username: string }[]>([]);
|
||||
const [usersSearchString, setUsersSearchString] = useState("");
|
||||
|
|
@ -313,6 +320,7 @@ const HostDetailsPage = ({
|
|||
{ packs: [], schedule: [] }
|
||||
);
|
||||
setSchedule(packStatsByType.schedule);
|
||||
setPacksState(packStatsByType.packs);
|
||||
}
|
||||
},
|
||||
onError: (error) => handlePageError(error),
|
||||
|
|
@ -614,6 +622,23 @@ const HostDetailsPage = ({
|
|||
host?.mdm.name === "Fleet" &&
|
||||
host?.mdm.macos_settings?.disk_encryption === "action_required";
|
||||
|
||||
/* Context team id might be different that host's team id
|
||||
Observer plus must be checked against host's team id */
|
||||
const isGlobalOrHostsTeamObserverPlus =
|
||||
currentUser && host?.team_id
|
||||
? permissions.isObserverPlus(currentUser, host.team_id)
|
||||
: false;
|
||||
|
||||
const isHostsTeamObserver =
|
||||
currentUser && host?.team_id
|
||||
? permissions.isTeamObserver(currentUser, host.team_id)
|
||||
: false;
|
||||
|
||||
const canViewPacks =
|
||||
!isGlobalObserver &&
|
||||
!isGlobalOrHostsTeamObserverPlus &&
|
||||
!isHostsTeamObserver;
|
||||
|
||||
const bootstrapPackageData = {
|
||||
status: host?.mdm.macos_setup?.bootstrap_package_status,
|
||||
details: host?.mdm.macos_setup?.details,
|
||||
|
|
@ -726,6 +751,9 @@ const HostDetailsPage = ({
|
|||
schedule={schedule}
|
||||
isLoading={isLoadingHost}
|
||||
/>
|
||||
{canViewPacks && (
|
||||
<PacksCard packsState={packsState} isLoading={isLoadingHost} />
|
||||
)}
|
||||
</TabPanel>
|
||||
<TabPanel>
|
||||
<PoliciesCard
|
||||
|
|
|
|||
Loading…
Reference in a new issue