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, ) diff --git a/web/src/components/menu/GeneralSettings.tsx b/web/src/components/menu/GeneralSettings.tsx index 8e131b513..918600bf4 100644 --- a/web/src/components/menu/GeneralSettings.tsx +++ b/web/src/components/menu/GeneralSettings.tsx @@ -61,6 +61,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; @@ -68,7 +69,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"; // settings @@ -275,7 +276,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;