From 9a5e614ad543a8258997faece781f8d8245f4873 Mon Sep 17 00:00:00 2001 From: giancarlo Date: Mon, 8 Apr 2024 14:03:22 +0800 Subject: [PATCH] Add user authentication and profile dropdown to admin sidebar The AdminSidebar function has been updated to include user authentication. If user authentication fails, a redirect is initiated. Additionally, a ProfileAccountDropdownContainer has been included in the sidebar to display user information. This improves the user experience and security of the admin sidebar. --- .../app/admin/_components/admin-sidebar.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/web/app/admin/_components/admin-sidebar.tsx b/apps/web/app/admin/_components/admin-sidebar.tsx index de651a9d4..a7984006e 100644 --- a/apps/web/app/admin/_components/admin-sidebar.tsx +++ b/apps/web/app/admin/_components/admin-sidebar.tsx @@ -1,5 +1,9 @@ +import { redirect } from 'next/navigation'; + import { Home, Users } from 'lucide-react'; +import { requireUser } from '@kit/supabase/require-user'; +import { getSupabaseServerActionClient } from '@kit/supabase/server-actions-client'; import { Sidebar, SidebarContent, @@ -7,9 +11,17 @@ import { SidebarItem, } from '@kit/ui/sidebar'; +import { ProfileAccountDropdownContainer } from '~/(dashboard)/home/_components/personal-account-dropdown-container'; import { AppLogo } from '~/components/app-logo'; -export function AdminSidebar() { +export async function AdminSidebar() { + const client = getSupabaseServerActionClient(); + const user = await requireUser(client); + + if (user.error) { + redirect(user.redirectTo); + } + return ( @@ -30,6 +42,10 @@ export function AdminSidebar() { + + + + ); }