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.
This commit is contained in:
@@ -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 (
|
||||
<Sidebar>
|
||||
<SidebarContent className={'py-4'}>
|
||||
@@ -30,6 +42,10 @@ export function AdminSidebar() {
|
||||
</SidebarItem>
|
||||
</SidebarGroup>
|
||||
</SidebarContent>
|
||||
|
||||
<SidebarContent className={'absolute bottom-4'}>
|
||||
<ProfileAccountDropdownContainer user={user.data} collapsed={false} />
|
||||
</SidebarContent>
|
||||
</Sidebar>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user