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 { Home, Users } from 'lucide-react';
|
||||||
|
|
||||||
|
import { requireUser } from '@kit/supabase/require-user';
|
||||||
|
import { getSupabaseServerActionClient } from '@kit/supabase/server-actions-client';
|
||||||
import {
|
import {
|
||||||
Sidebar,
|
Sidebar,
|
||||||
SidebarContent,
|
SidebarContent,
|
||||||
@@ -7,9 +11,17 @@ import {
|
|||||||
SidebarItem,
|
SidebarItem,
|
||||||
} from '@kit/ui/sidebar';
|
} from '@kit/ui/sidebar';
|
||||||
|
|
||||||
|
import { ProfileAccountDropdownContainer } from '~/(dashboard)/home/_components/personal-account-dropdown-container';
|
||||||
import { AppLogo } from '~/components/app-logo';
|
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 (
|
return (
|
||||||
<Sidebar>
|
<Sidebar>
|
||||||
<SidebarContent className={'py-4'}>
|
<SidebarContent className={'py-4'}>
|
||||||
@@ -30,6 +42,10 @@ export function AdminSidebar() {
|
|||||||
</SidebarItem>
|
</SidebarItem>
|
||||||
</SidebarGroup>
|
</SidebarGroup>
|
||||||
</SidebarContent>
|
</SidebarContent>
|
||||||
|
|
||||||
|
<SidebarContent className={'absolute bottom-4'}>
|
||||||
|
<ProfileAccountDropdownContainer user={user.data} collapsed={false} />
|
||||||
|
</SidebarContent>
|
||||||
</Sidebar>
|
</Sidebar>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user