feat(permissions): more permissions for accessing via sidbar
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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}) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user