Fix Admin sidebar item visibility for self-hosted deployments (#189)

Co-authored-by: KMKoushik <24666922+KMKoushik@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
This commit is contained in:
Copilot
2025-07-27 00:40:34 +10:00
committed by GitHub
parent c1431e4af1
commit 1f646473b3

View File

@@ -109,7 +109,7 @@ const settingsItems = [
url: "/settings", url: "/settings",
icon: Cog, icon: Cog,
}, },
// TODO: Add conditional logic for Admin item based on isSelfHosted() || session?.user.isAdmin // Admin item shows if user is admin OR if it's self-hosted
{ {
title: "Admin", title: "Admin",
url: "/admin", url: "/admin",
@@ -200,12 +200,21 @@ export function AppSidebar() {
{settingsItems.map((item) => { {settingsItems.map((item) => {
const isActive = pathname?.startsWith(item.url); const isActive = pathname?.startsWith(item.url);
// Special case for Admin item: show if user is admin OR if it's self-hosted
if (item.isAdmin && item.isSelfHosted) {
if (!session?.user.isAdmin && !isSelfHosted()) {
return null;
}
} else {
// Regular admin-only items
if (item.isAdmin && !session?.user.isAdmin) { if (item.isAdmin && !session?.user.isAdmin) {
return null; return null;
} }
// Regular self-hosted-only items
if (item.isSelfHosted && !isSelfHosted()) { if (item.isSelfHosted && !isSelfHosted()) {
return null; return null;
} }
}
return ( return (
<SidebarMenuItem key={item.title}> <SidebarMenuItem key={item.title}>
<SidebarMenuButton <SidebarMenuButton