feat(permissions): more permissions for accessing via sidbar

This commit is contained in:
2025-03-10 16:17:57 -05:00
parent 22e050ebfa
commit 6c4e14fad3
3 changed files with 33 additions and 11 deletions

View File

@@ -19,7 +19,12 @@ export function AppSidebar() {
<Sidebar collapsible="icon">
<SidebarContent>
<Header />
{moduleActive("production") && <ProductionSideBar />}
{moduleActive("production") && (
<ProductionSideBar
user={user}
moduleID={modules.filter((n) => n.name === "production")[0].module_id as string}
/>
)}
{moduleActive("logistics") && (
<LogisticsSideBar
user={user}

View File

@@ -15,7 +15,7 @@ const items = [
title: "Silo Adjustments",
url: "#",
icon: Cylinder,
role: ["technician", "supervisor", "manager", "admin", "systemAdmin"],
role: ["admin", "systemAdmin"],
module: "logistics",
active: true,
},
@@ -23,7 +23,7 @@ const items = [
title: "Bulk orders",
url: "#",
icon: Truck,
role: ["technician", "supervisor", "manager", "admin", "systemAdmin"],
role: ["systemAdmin"],
module: "logistics",
active: true,
},
@@ -31,7 +31,7 @@ const items = [
title: "Forecast",
url: "#",
icon: Truck,
role: ["technician", "supervisor", "manager", "admin", "systemAdmin"],
role: ["systemAdmin"],
module: "logistics",
active: true,
},
@@ -43,6 +43,14 @@ const items = [
module: "logistics",
active: false,
},
{
title: "Material Helper",
url: "/materialHelper/consumption",
icon: Package,
role: ["technician", "supervisor", "manager", "admin", "systemAdmin"],
module: "logistics",
active: true,
},
];
export function LogisticsSideBar({user, moduleID}: {user: User | null; moduleID: string}) {

View File

@@ -7,16 +7,21 @@ import {
SidebarMenuButton,
SidebarMenuItem,
} from "../../ui/sidebar";
import {hasPageAccess} from "@/utils/userAccess";
import {User} from "@/types/users";
const items = [
{
title: "One Click Print",
url: "/ocp",
icon: Printer,
role: ["systemAdmin"],
module: "ocp",
active: true,
},
];
export function ProductionSideBar() {
export function ProductionSideBar({user, moduleID}: {user: User | null; moduleID: string}) {
return (
<SidebarGroup>
<SidebarGroupLabel>Production</SidebarGroupLabel>
@@ -24,12 +29,16 @@ export function ProductionSideBar() {
<SidebarMenu>
{items.map((item) => (
<SidebarMenuItem key={item.title}>
<SidebarMenuButton asChild>
<a href={item.url}>
<item.icon />
<span>{item.title}</span>
</a>
</SidebarMenuButton>
<>
{hasPageAccess(user, item.role, moduleID) && item.active && (
<SidebarMenuButton asChild>
<a href={item.url}>
<item.icon />
<span>{item.title}</span>
</a>
</SidebarMenuButton>
)}
</>
</SidebarMenuItem>
))}
</SidebarMenu>