From 19342c87682de2fcf492265d231588b4fd596f83 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 14 Mar 2025 13:39:48 -0600 Subject: [PATCH 1/2] Fix face library menu item (#17155) --- web/src/components/menu/GeneralSettings.tsx | 7 ++++--- web/src/types/frigateConfig.ts | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/web/src/components/menu/GeneralSettings.tsx b/web/src/components/menu/GeneralSettings.tsx index 3d65cf8f0..55d180a42 100644 --- a/web/src/components/menu/GeneralSettings.tsx +++ b/web/src/components/menu/GeneralSettings.tsx @@ -56,6 +56,7 @@ import { useIsAdmin } from "@/hooks/use-is-admin"; import SetPasswordDialog from "../overlay/SetPasswordDialog"; import { toast } from "sonner"; import axios from "axios"; +import { FrigateConfig } from "@/types/frigateConfig"; type GeneralSettingsProps = { className?: string; @@ -63,7 +64,7 @@ type GeneralSettingsProps = { export default function GeneralSettings({ className }: GeneralSettingsProps) { const { data: profile } = useSWR("profile"); - const { data: config } = useSWR("config"); + const { data: config } = useSWR("config"); const logoutUrl = config?.proxy?.logout_url || "/api/logout"; const { theme, colorScheme, setTheme, setColorScheme } = useTheme(); @@ -255,7 +256,7 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) { )} - {isAdmin && isMobile && ( + {isAdmin && isMobile && config?.face_recognition.enabled && ( <> - Configuration editor + Face Library diff --git a/web/src/types/frigateConfig.ts b/web/src/types/frigateConfig.ts index 2910118f4..1b3dbd3f3 100644 --- a/web/src/types/frigateConfig.ts +++ b/web/src/types/frigateConfig.ts @@ -435,6 +435,10 @@ export interface FrigateConfig { enabled: boolean; }; + proxy: { + logout_url?: string; + }; + record: { enabled: boolean; enabled_in_config: boolean | null; From d87268acfebc1cefcef7ba9deb3f367696deb707 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sat, 15 Mar 2025 08:11:45 -0500 Subject: [PATCH 2/2] Small tweaks (#17168) * Clean up repeated code in auth * Ensure review status is migrated for anonymous users --- frigate/api/auth.py | 2 +- migrations/030_create_user_review_status.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frigate/api/auth.py b/frigate/api/auth.py index f806a0c30..fc0bda6ed 100644 --- a/frigate/api/auth.py +++ b/frigate/api/auth.py @@ -253,12 +253,12 @@ def auth(request: Request): # pass the user header value from the upstream proxy if a mapping is specified # or use anonymous if none are specified user_header = proxy_config.header_map.user - role_header = proxy_config.header_map.role success_response.headers["remote-user"] = ( request.headers.get(user_header, default="anonymous") if user_header else "anonymous" ) + role_header = proxy_config.header_map.role role = ( request.headers.get(role_header, default="viewer") diff --git a/migrations/030_create_user_review_status.py b/migrations/030_create_user_review_status.py index d24738438..17f2b36b9 100644 --- a/migrations/030_create_user_review_status.py +++ b/migrations/030_create_user_review_status.py @@ -62,11 +62,13 @@ def migrate(migrator, database, fake=False, **kwargs): 'SELECT "id" FROM "reviewsegment" WHERE "has_been_reviewed" = 1' ) reviewed_segment_ids = [row[0] for row in cursor.fetchall()] + # also migrate for anonymous (unauthenticated users) + usernames = [user.username for user in all_users] + ["anonymous"] for segment_id in reviewed_segment_ids: - for user in all_users: + for username in usernames: UserReviewStatus.create( - user_id=user.username, + user_id=username, review_segment=segment_id, has_been_reviewed=True, )