diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index b17098a..3004ee2 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -101,6 +101,10 @@ function HomeRoute() { const panels = user?.panels ?? {}; if (panels.inventory) return ; if (panels.procurement === "limited") return ; + // فقط پنل PM: مستقیم به پنل مدیریت پروژه + if (panels.pm && !panels.inventory && !panels.procurement) { + return ; + } if (user?.role === "supervisor") return ; if (user?.role === "pm") return ; return ; @@ -130,10 +134,16 @@ function PmPanelPage() { ); } -// دسترسی پنل PM: همه نقش‌ها دسترسی دارند +// دسترسی پنل PM: ادمین، پنل pm (full/limited) و نقش‌های میراث pm/supervisor — +// مدیر تدارکات (یا هر کاربر بدون پنل pm) دسترسی ندارد function RequirePmPanel({ children }: { children: React.ReactNode }) { const user = useAuthStore((s) => s.user); - const allowed = user?.role === "admin" || user?.role === "procurement_manager" || user?.role === "pm" || user?.role === "supervisor"; + const panels = user?.panels ?? {}; + const allowed = + user?.role === "admin" || + Boolean(panels.pm) || + user?.role === "pm" || + user?.role === "supervisor"; if (!allowed) return ; return <>{children}; }