From e9bc79d3b3b34477992a42614e7e958a4f7f97da Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sat, 23 May 2026 07:23:38 -0500 Subject: [PATCH] filter alertCameras by allowed cameras so the recent alerts query for restricted roles doesn't reference cameras they can't access --- web/src/views/live/LiveDashboardView.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/src/views/live/LiveDashboardView.tsx b/web/src/views/live/LiveDashboardView.tsx index 716ffed041..629bf30b87 100644 --- a/web/src/views/live/LiveDashboardView.tsx +++ b/web/src/views/live/LiveDashboardView.tsx @@ -13,6 +13,7 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; +import { useAllowedCameras } from "@/hooks/use-allowed-cameras"; import { useUserPersistence } from "@/hooks/use-user-persistence"; import { AllGroupsStreamingSettings, @@ -90,6 +91,7 @@ export default function LiveDashboardView({ // recent events const eventUpdate = useFrigateReviews(); + const allowedCameras = useAllowedCameras(); const alertCameras = useMemo(() => { if (!config) { @@ -98,14 +100,16 @@ export default function LiveDashboardView({ if (cameraGroup == "default") { return Object.values(config.cameras) - .filter((cam) => cam.ui.dashboard) + .filter((cam) => cam.ui.dashboard && allowedCameras.includes(cam.name)) .map((cam) => cam.name) .join(","); } if (includeBirdseye && cameras.length == 0) { return Object.values(config.cameras) - .filter((cam) => cam.birdseye.enabled) + .filter( + (cam) => cam.birdseye.enabled && allowedCameras.includes(cam.name), + ) .map((cam) => cam.name) .join(","); } @@ -114,7 +118,7 @@ export default function LiveDashboardView({ .map((cam) => cam.name) .filter((cam) => config.camera_groups[cameraGroup]?.cameras.includes(cam)) .join(","); - }, [cameras, cameraGroup, config, includeBirdseye]); + }, [cameras, cameraGroup, config, includeBirdseye, allowedCameras]); const { data: allEvents, mutate: updateEvents } = useSWR([ "review",