From 3765ebf90e04e03971142ec7b38db9eb4cb6dfe4 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Fri, 7 Aug 2026 19:00:40 +0300 Subject: [PATCH] Add dev --- app/config.ts | 2 +- app/features/scanner-ingest/actions/scanner-ingest.server.ts | 4 ++-- app/features/scanner/routes/scanner.tsx | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/config.ts b/app/config.ts index 33fa59938..c2c2d98a1 100644 --- a/app/config.ts +++ b/app/config.ts @@ -67,7 +67,7 @@ export const Config = { /** Whether to show the LUTI navigation item. */ showLutiNavItem: values.VITE_SHOW_LUTI_NAV_ITEM, fuseEnabled: values.VITE_FUSE_ENABLED, - /** Whether the scanner is available to everyone. While false only the admin can use the scanner page and its ingest endpoint. */ + /** Whether the scanner is available to everyone. While false only the admin and devs can use the scanner page and its ingest endpoint. */ scannerEnabled: values.VITE_SCANNER_ENABLED, /** Google Form URL for league registration, if configured. */ leagueGoogleFormUrl: values.VITE_LEAGUE_GOOGLE_FORM_URL, diff --git a/app/features/scanner-ingest/actions/scanner-ingest.server.ts b/app/features/scanner-ingest/actions/scanner-ingest.server.ts index 1c3b69727..9f48070f5 100644 --- a/app/features/scanner-ingest/actions/scanner-ingest.server.ts +++ b/app/features/scanner-ingest/actions/scanner-ingest.server.ts @@ -3,7 +3,7 @@ import type { ActionFunction } from "react-router"; import { Config } from "~/config"; import { requireUser } from "~/features/auth/core/user.server"; import type { ScannerMatch } from "~/features/scanner/core/scanner-match"; -import { isAdmin } from "~/modules/permissions/utils"; +import { isAdmin, isDev } from "~/modules/permissions/utils"; import { dateToDatabaseTimestamp } from "~/utils/dates"; import { logger } from "~/utils/logger"; import { forbidden, parseBody } from "~/utils/remix.server"; @@ -18,7 +18,7 @@ import { export const action: ActionFunction = async ({ request }) => { const user = requireUser(); - if (!Config.scannerEnabled && !isAdmin(user)) { + if (!Config.scannerEnabled && !isAdmin(user) && !isDev(user)) { forbidden(); } diff --git a/app/features/scanner/routes/scanner.tsx b/app/features/scanner/routes/scanner.tsx index 0877ded3f..92f88cb3f 100644 --- a/app/features/scanner/routes/scanner.tsx +++ b/app/features/scanner/routes/scanner.tsx @@ -35,8 +35,9 @@ const ScannerApp = lazy(() => export default function ScannerPage() { const isHydrated = useHydrated(); const isAdmin = useHasRole("ADMIN"); + const isDev = useHasRole("DEV"); - if (!Config.scannerEnabled && !isAdmin) { + if (!Config.scannerEnabled && !isAdmin && !isDev) { return ; }