From 3d2fffd1380fc57910277a0abae29d909d518006 Mon Sep 17 00:00:00 2001 From: Alejandra <90076947+alejsdev@users.noreply.github.com> Date: Fri, 23 Jan 2026 17:12:05 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Add=20user=20authentication=20ch?= =?UTF-8?q?eck=20in=20admin=20route=20to=20restrict=20access=20for=20non-s?= =?UTF-8?q?uperusers=20(#2145)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/routes/_layout/admin.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/routes/_layout/admin.tsx b/frontend/src/routes/_layout/admin.tsx index 256038a..99ae755 100644 --- a/frontend/src/routes/_layout/admin.tsx +++ b/frontend/src/routes/_layout/admin.tsx @@ -1,5 +1,5 @@ import { useSuspenseQuery } from "@tanstack/react-query" -import { createFileRoute } from "@tanstack/react-router" +import { createFileRoute, redirect } from "@tanstack/react-router" import { Suspense } from "react" import { type UserPublic, UsersService } from "@/client" @@ -18,6 +18,14 @@ function getUsersQueryOptions() { export const Route = createFileRoute("/_layout/admin")({ component: Admin, + beforeLoad: async () => { + const user = await UsersService.readUserMe() + if (!user.is_superuser) { + throw redirect({ + to: "/", + }) + } + }, head: () => ({ meta: [ {