Skip to content

Commit

Permalink
fix: allow to unlock macOS hosts even if they're pending unlock (#16800)
Browse files Browse the repository at this point in the history
unreleased bug for: #9949
  • Loading branch information
Roberto Dip authored Feb 13, 2024
1 parent b51c420 commit 4740820
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,35 @@ describe("Host Actions Dropdown", () => {
expect(screen.getByText("Unlock")).toBeInTheDocument();
});

it("renders when the host is enrolled in mdm and the mdm is enabled and host is unlocking", async () => {
const render = createCustomRenderer({
context: {
app: {
isPremiumTier: true,
isMdmEnabledAndConfigured: true,
isGlobalAdmin: true,
currentUser: createMockUser(),
},
},
});

const { user } = render(
<HostActionsDropdown
hostTeamId={null}
onSelect={noop}
hostStatus="online"
hostMdmEnrollmentStatus="On (automatic)"
mdmName="Fleet"
hostPlatform="darwin"
hostMdmDeviceStatus="unlocking"
/>
);

await user.click(screen.getByText("Actions"));

expect(screen.getByText("Unlock")).toBeInTheDocument();
});

it("does not render when the host is not enrolled in mdm", async () => {
const render = createCustomRenderer({
context: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,16 @@ const canUnlock = ({
isMdmEnabledAndConfigured &&
isEnrolledInMdm;

// "unlocking" for a macOS host means that somebody saw the unlock pin, but
// shouldn't prevent users from trying to see the pin again, which is
// considered an "unlock"
const isValidState =
(hostMdmDeviceStatus === "unlocking" && hostPlatform === "darwin") ||
hostMdmDeviceStatus === "locked";

return (
isPremiumTier &&
hostMdmDeviceStatus === "locked" &&
isValidState &&
(isGlobalAdmin ||
isGlobalMaintainer ||
isGlobalObserver ||
Expand Down

0 comments on commit 4740820

Please sign in to comment.