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}>;
}