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:
@@ -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,11 +200,20 @@ export function AppSidebar() {
|
|||||||
{settingsItems.map((item) => {
|
{settingsItems.map((item) => {
|
||||||
const isActive = pathname?.startsWith(item.url);
|
const isActive = pathname?.startsWith(item.url);
|
||||||
|
|
||||||
if (item.isAdmin && !session?.user.isAdmin) {
|
// Special case for Admin item: show if user is admin OR if it's self-hosted
|
||||||
return null;
|
if (item.isAdmin && item.isSelfHosted) {
|
||||||
}
|
if (!session?.user.isAdmin && !isSelfHosted()) {
|
||||||
if (item.isSelfHosted && !isSelfHosted()) {
|
return null;
|
||||||
return null;
|
}
|
||||||
|
} else {
|
||||||
|
// Regular admin-only items
|
||||||
|
if (item.isAdmin && !session?.user.isAdmin) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// Regular self-hosted-only items
|
||||||
|
if (item.isSelfHosted && !isSelfHosted()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<SidebarMenuItem key={item.title}>
|
<SidebarMenuItem key={item.title}>
|
||||||
|
Reference in New Issue
Block a user