From 19ec7f8a5051d4480eef43e75e13dc14271402ca Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Sep 2025 09:59:20 -0400 Subject: [PATCH] refactor: streamline fleet policy retrieval logic in getFleetPolicies function (#1489) - Simplified the logic for fetching fleet policies by removing unnecessary checks and fallback mechanisms. - Enhanced error handling and logging for better clarity when no devices are found or when fetching fails. - Ensured that only devices associated with the specific fleetDmLabelId are considered for the member, improving the accuracy of device matching. These changes improve the maintainability and performance of the fleet policy retrieval process. Co-authored-by: Mariano Fuentes --- .../[orgId]/people/[employeeId]/page.tsx | 118 +++--------------- 1 file changed, 14 insertions(+), 104 deletions(-) diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx index 52f7a62fb..a7fa20827 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx @@ -172,125 +172,35 @@ const getTrainingVideos = async (employeeId: string) => { const getFleetPolicies = async (member: Member & { user: User }) => { const fleet = await getFleetInstance(); - const session = await auth.api.getSession({ - headers: await headers(), - }); - const organizationId = session?.session.activeOrganizationId; - // Try individual member's fleet label first - if (member.fleetDmLabelId) { + // Only show device if the employee has their own specific fleetDmLabelId + if (!member.fleetDmLabelId) { console.log( - `Found individual fleetDmLabelId: ${member.fleetDmLabelId} for member: ${member.id}, member email: ${member.user?.email}`, + `No individual fleetDmLabelId found for member: ${member.id}, member email: ${member.user?.email}. No device will be shown.`, ); - - try { - const deviceResponse = await fleet.get(`/labels/${member.fleetDmLabelId}/hosts`); - const device = deviceResponse.data.hosts?.[0]; - - if (device) { - const deviceWithPolicies = await fleet.get(`/hosts/${device.id}`); - const fleetPolicies = deviceWithPolicies.data.host.policies; - return { fleetPolicies, device }; - } - } catch (error) { - console.log( - `Failed to get device using individual fleet label for member: ${member.id}`, - error, - ); - } - } - - // Fallback: Use organization fleet label and find device by matching criteria - if (!organizationId) { - console.log('No organizationId available for fallback device lookup'); return { fleetPolicies: [], device: null }; } try { - const organization = await db.organization.findUnique({ - where: { id: organizationId }, - }); + const deviceResponse = await fleet.get(`/labels/${member.fleetDmLabelId}/hosts`); + const device = deviceResponse.data.hosts?.[0]; - if (!organization?.fleetDmLabelId) { + if (!device) { console.log( - `No organization fleetDmLabelId found for fallback device lookup - member: ${member.id}`, + `No device found for fleetDmLabelId: ${member.fleetDmLabelId} for member: ${member.id}`, ); return { fleetPolicies: [], device: null }; } - console.log( - `Using organization fleetDmLabelId: ${organization.fleetDmLabelId} as fallback for member: ${member.id}`, - ); - - // Get all devices from organization - const deviceResponse = await fleet.get(`/labels/${organization.fleetDmLabelId}/hosts`); - const allDevices = deviceResponse.data.hosts || []; - - if (allDevices.length === 0) { - console.log('No devices found in organization fleet'); - return { fleetPolicies: [], device: null }; - } - - // Get detailed info for all devices to help match them to the employee - const devicesWithDetails = await Promise.all( - allDevices.map(async (device: any) => { - try { - const deviceDetails = await fleet.get(`/hosts/${device.id}`); - return deviceDetails.data.host; - } catch (error) { - console.log(`Failed to get details for device ${device.id}:`, error); - return null; - } - }), - ); - - const validDevices = devicesWithDetails.filter(Boolean); - - // Try to match device to employee by computer name containing user's name - const userName = member.user.name?.toLowerCase(); - const userEmail = member.user.email?.toLowerCase(); - - let matchedDevice = null; - - if (userName) { - // Try to find device with computer name containing user's name - matchedDevice = validDevices.find( - (device: any) => - device.computer_name?.toLowerCase().includes(userName.split(' ')[0]) || - device.computer_name?.toLowerCase().includes(userName.split(' ').pop()), - ); - } - - if (!matchedDevice && userEmail) { - // Try to find device with computer name containing part of email - const emailPrefix = userEmail.split('@')[0]; - matchedDevice = validDevices.find((device: any) => - device.computer_name?.toLowerCase().includes(emailPrefix), - ); - } + const deviceWithPolicies = await fleet.get(`/hosts/${device.id}`); + const fleetPolicies = deviceWithPolicies.data.host.policies || []; - // If no specific match found and there's only one device, assume it's theirs - if (!matchedDevice && validDevices.length === 1) { - matchedDevice = validDevices[0]; - console.log(`Only one device found, assigning to member: ${member.id}`); - } - - if (matchedDevice) { - console.log( - `Matched device ${matchedDevice.computer_name} (ID: ${matchedDevice.id}) to member: ${member.id}`, - ); - return { - fleetPolicies: matchedDevice.policies || [], - device: matchedDevice, - }; - } - - console.log( - `No device could be matched to member: ${member.id}. Available devices: ${validDevices.map((d: any) => d.computer_name).join(', ')}`, - ); - return { fleetPolicies: [], device: null }; + return { fleetPolicies, device: deviceWithPolicies.data.host }; } catch (error) { - console.error(`Failed to get fleet policies using fallback for member: ${member.id}`, error); + console.error( + `Failed to get device using individual fleet label for member: ${member.id}`, + error, + ); return { fleetPolicies: [], device: null }; } };